我需要使用的函数非常少,如下所示:
data-ng-disabled="_isEmpty(grid.view) || view != 'preview'"
Run Code Online (Sandbox Code Playgroud)
我做的是:
$scope._isEmpty = _.isEmpty;
Run Code Online (Sandbox Code Playgroud)
所以_isEmpty实际上是lodash函数.
这是合理的事吗?如果是这样,那么我将在哪里编写上述代码?我应该在我的appController中编码吗?我还应该将._isEmpty附加到$ scope或$ rootscope吗?我听说有人在谈论提供服务,然后注入这个.但是对于几行代码来说,这似乎有些过分.
Mat*_*Way 17
这一切都取决于需要此代码的位置.如果它严重依赖于特定数据对象或视图,或者需要它,那么它很可能属于控制器.如果在控制器内部,$scope则应使用要在视图中引用的任何值.
但是,如果您正在编写在整个应用程序中使用的泛型函数,那么它们应该放在类似服务的东西中,并在需要时注入.大多数情况下,如果您发现自己使用$rootScope,代码应该在服务中.服务并不是真的过度,你可以在下面看到:
angular.module('myapp.services.something', [])
.factory('myService', [function () {
return {
myFunc: function (someArg) {
console.log(someArg);
}
};
}]);
Run Code Online (Sandbox Code Playgroud)
您可以在这样的服务中放置任意数量的通用辅助函数,并将它们注入需要使用它们的任何控制器中.
zsz*_*zep -1
尽管通常不推荐,但我可以看到通过将函数放入根作用域可以解决此类问题。$scope._isEmpty = _.isEmpty;这样就不再需要将线路放入每个控制器中了。对我来说更好的方法是将实用函数重新编码为指令,即使涉及一些编码。解决问题的另一种方法是使用服务。
| 归档时间: |
|
| 查看次数: |
6747 次 |
| 最近记录: |