使用' as'控制器上的语法和绑定值有一种破坏控制器的新方法,还是我还应该使用范围?
如果我使用'作为'在dom中声明一个控制器。语法:
<section ng-controller="MyController as mine">...
你使用&#39;这个&#39;将事物绑定到控制器而不是范围的语法,如何确保控制器被销毁?
myApp.controller('MyApp', ['pubsub', function (pubsub) {
var myController = this;
this.subject = ""
this.myTopic = pubsub.subscribe('mytopic', function(data) {
myController.subject = data;
}
}
这会造成内存泄漏,我的控制器无法清理,因为pubsub正在控制我的控制器。
有没有办法为我的控制器创建一个destroy函数,还是我仍然使用scope对象来监听destroy事件?
myApp.controller('MyApp', ['pubsub', '$scope', function (pubsub, $scope) {
...
$scope.$on("$destroy", function() {
if (myController.myTopic) {
myController.myTopic.unsubcribe();
myController.myTopic = null;
}
});
答案 0 :(得分:1)
使用$scope
做一些特别的事情,比如监听事件,广播,观看,发光等,即使使用controllerAs
语法也是如此。