假设我们有第三方插件,我们可以将一些选项设置为属性值。
<button options="prop.options">
在控制器中我们有:
/**
* More about $scope.prop
* - No need to access $scope
* - It should access $window
* - It's pretty large object (e.g. 100 lines)
*/
$scope.prop = {options: {}};
我想让控制器保持尽可能薄,但移动这个对象的最佳位置是什么?在这样的情况下,什么被认为是好的做法?
答案 0 :(得分:2)
对于此类数据,创建服务通常是可行的方法。这提供了配置数据的集中源,可以注入需要使用它的任何组件。
app.service('pluginOptions', function($window) {
return {
options: {
prop1: 'x'
prop2: 'y'
}
};
});
app.controller('myCtrl', function(pluginOptions, $scope) {
$scope.prop = pluginOptions.options;
});