Nin*_*ner 0 angularjs angularjs-scope
在我的控制器中,我有几个与$ scope相关的本地函数.随着这个数字的增加,他们现在似乎失控了.构造这些本地控制器功能的正确模式是什么?
例如,
function myController($scope) {
$scope.func1 = function() {
// do something with $scope
}
$scope.func2 = function() {
// do something with $scope
}
$scope.func3 = function() {
// do something with $scope
}
// ... controller code here ...
}
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以使这些本地func1,func2,func3更易于管理?
您可以将控制器定义为类,并使用原型添加功能:
var myController = function($scope){
var _this = this;
$scope.func1= function(){
_this.func1();
};
};
myController.prototype.func1 = function(){
// do something here
};
app.controller('myController', myController);
Run Code Online (Sandbox Code Playgroud)
这样你就可以避免"范围汤".有一个关于一个伟大的文章在这里
请注意,您还可以使用"as"关键字来避免$ scope:
<div ng-controller="myController as ctrl">
<input ng-click="ctrl.func1()">
</div>
var myController = function(){
this.someVar = "A value";
};
myController.prototype.func1 = function(){
// do something here
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
729 次 |
| 最近记录: |