我有一个关于角度范围的基本问题(可能之前已经回答过,但我找不到解决方案):
在我的应用程序视图中,多个ng-includes包含其他angular元素,这些元素在其中创建子范围(例如ng-repeats)。我想在一个控制器中管理它们,但是在ng-include模板中,我必须使用$ parent.variable_name来从控制器访问/更改变量。在ng-include中的ng-repeat内部,我必须使用$ parent。$ parent.variable_name来访问/更改它。这很难让人感到困惑,因为很难说,你的子范围有多深。
有没有更好的方法来引用子视图中的控制器变量和函数?
答案 0 :(得分:0)
创建服务/工厂(服务/工厂是单身)。
angular.module('moduleName')
.factory('factoryName', function() {
return {
variableName: 1
};
});
然后进入你的控制器(你可以在所有其他控制器中使用它)并使用工厂。
angular.module('moduleName')
.controller('controllerName', function($scope, factoryName) {
$scope.data = factoryName;
});
然后在你的HTML中你可以简单地绑定它。
<div ng-controller="controllerName">
{{ data.variableName }}
</div>
没有测试它。但它应该工作:)