【发布时间】:2015-03-01 20:48:47
【问题描述】:
我创建了一个封装了代码的 plunker,但由于某种原因,ng-click 无法在其中工作。
好吧,希望这足以说明我的问题。 http://plnkr.co/edit/ILbz7tMLpOgXyO0Dx6su?p=preview
所以我正在尝试创建自己的简单MessageService,它是一个服务,用于保存下一个$state 的消息(使用ui-router)。
我创建了一个小指令,我也将它包含在我的 plunker 中。
该指令在下一条路线上显示消息,但由于某种原因(我不知道)它不会触发 $timeout 函数,我将 scope.feedback 设置为 null。
正如您在我的 plunker 中看到的,我在指令模板上有一个 ng-show="feedback",我在指令控制器中填充了 MessageService.get() 以检索消息。在我的链接功能中,我想将其设置为null,以在一段时间后将其隐藏。
模板:
<div ng-show="feedback" class="feedback">
<div class="alert feedback-message alert-success">{{feedback}}</div>
</div>
控制器功能:
$scope.$on('$stateChangeSuccess', function () {
$scope.feedback = MessageService.get();
});
链接功能:
if (scope.feedback != null) {
if (scope.feedback.type == 'success') {
scope.typeClass = 'alert-success';
} else if (scope.feedback.type == 'error') {
scope.typeClass = 'alert-danger';
}
$timeout(function () {
scope.feedback = null;
}, 1500)
}
如果您需要更多信息,请告诉我。
【问题讨论】:
-
请直接在问题中发布相关代码。虽然外部演示非常有帮助,但您的问题应该是独立的,而无需离开此站点
-
您的按钮不在
MainController的范围内。它在ui-view之外 -
@charlietfl 我已经添加了代码并更新了我的 plunker。大声笑是的,真的很愚蠢......哈哈。演示现在正在本地工作,希望问题很清楚。
标签: javascript angularjs angularjs-directive timeout angularjs-scope