到目前为止,我所有的AngularJS都集中在一页上,并且在一个控制器内。现在,我需要构建一种在所有6页上动态工具提示的方法-5页当前没有控制器,而1页当前具有“ FoodCtrl”。我正在构建的功能将是:从tooltips.json文件中读取,通过id找到此页面的正确工具提示,并将工具提示内容插入DOM。
myApp已在所有这些页面上初始化。它是一个小的,平坦的层次结构,如下所示:
--> Profile
--> Information
--> Test (has controller FoodCtrl)
--> Payment
我在这里寻求有关正确的Angular实践的建议。我应该使用所需的工具提示行为扩展“ FoodCtrl”,还是将“ FoodCtrl”控制器添加到站点中的其他页面?或者,我应该为所有页面创建一个唯一的“工具提示”控制器,然后以某种方式将其集成到已经具有“ FoodCtrl”的页面上吗?或者,我应该设置通用的工具提示工厂/服务,并从“ FoodCtrl”以及其他页面上的新特定控制器中引用它吗?
需要从外部来源获取信息的机制提取到单独的服务中,并在需要时注入。
有用的链接
http://docs.angularjs.org/guide/dev_guide.services.creating_services
http://docs.angularjs.org/guide/dev_guide.services.injecting_controllers
使用服务的例子
var app = angular.module('myApp', []);
app.service('tooltips', function() {
this.getTooptip = function(pageId) {
...
};
});
function myController($scope, tooltips) {
$scope.pageId = '<pageID>'
$scope.tooltip = tooltips.getTooltip($scope.pageId);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句