【发布时间】:2013-01-30 18:22:15
【问题描述】:
我有一个指令,它有自己的控制器。见以下代码:
var popdown = angular.module('xModules',[]);
popdown.directive('popdown', function () {
var PopdownController = function ($scope) {
this.scope = $scope;
}
PopdownController.prototype = {
show:function (message, type) {
this.scope.message = message;
this.scope.type = type;
},
hide:function () {
this.scope.message = '';
this.scope.type = '';
}
}
var linkFn = function (scope, lElement, attrs, controller) {
};
return {
controller: PopdownController,
link: linkFn,
replace: true,
templateUrl: './partials/modules/popdown.html'
}
});
这是一个用于错误/通知/警告的通知系统。我想要做的是从另一个控制器(不是指令控制器)调用此控制器上的函数show。当我这样做时,我还希望我的链接函数能够检测到某些属性发生了变化并执行一些动画。
这里有一些代码来举例说明我的要求:
var app = angular.module('app', ['RestService']);
app.controller('IndexController', function($scope, RestService) {
var result = RestService.query();
if(result.error) {
popdown.notify(error.message, 'error');
}
});
所以当在popdown 指令控制器上调用show 时,链接函数也应该被触发并执行动画。我怎样才能做到这一点?
【问题讨论】:
-
你在哪里调用页面上的
popdown指令 - 它只是在一个其他控制器都应该可以访问它的地方,还是在不同的地方有几个弹出窗口? -
我的 index.html 有这个: 基本上只有 1 个 popdown 实例,因为它意味着全球可用。跨度>
popdown.show(...)而不是popdown.notify(...),对吗?否则通知功能有点混乱。
popdown.notify? .notifiy 方法,我的意思是
标签: javascript jquery angularjs angularjs-directive