从html动态加载angularjs控制器
Load angularjs controller dynamically from html
我有两个控制器。我从第一个控制器中得到了一个复合JS对象,它有一些元素+JS对象+许多数组
我想分别用各种数组对象多次初始化第二个控制器。
我正在使用此代码来初始化第二个控制器。
app.controller('SSController', function($scope) {
$scope.init = function(initData)
{
$scope.initData = initData;
};
<div ng-controller="TTController">
<div ng-controller="SSController" ng-init='init({currData})'>
</div>
</div>
其中currData是TTController的作用域对象的属性。
如果我在init中传递一个硬编码的数字,它会被传递,但不会传递currData对象。即使是来自currData的整数值,例如currData.id,也不会被传递。
有什么想法吗?
我认为应该编写指令而不是控制器。请考虑以下模式。
<div ng-controller="TTController">
<div my-process-array="dataToWatch">
</div>
</div>
然后
app.directive('myProcessArray', function(){
return function(scope, elem, attrs){
elem.bind('click', function(){
// do click stuff
});
scope.$watch(attrs.myProcessArray, function(newdata, olddata){
// do stuff with data from the parent controller.
});
};
});
相反,定义一些保存数据的服务;最初,将服务注入TTController,然后修改/填充数据,然后将相同的服务注入SSController。:)与指令和控制器相比,使用服务更好。。顺便说一句,服务是提供数据的更好方式。:)
相关文章:
- 将值从html传递到AngularJS控制器
- angularjs-控制器在表单提交时未调用
- Angularjs控制器本地错误
- AngularJS:控制器中的函数被模板多次调用
- 将AngularJS控制器拆分为多个文件
- AngularJS控制器范围
- AngularJS控制器不工作,为什么?(简单的控制器示例)
- AngularJS控制器在注入工厂时抛出错误
- 如何使用onclick事件调用AngularJS控制器
- angularjs控制器未启动
- 设置AngularJS控制器属性不能是使用Coffeescript的最后一行
- 如何使AngularJS控制器依赖于通过ajax加载在rootScope上的值
- 通过因果报应测试管理angularjs控制器初始化
- AngularJs 控制器中的实时时钟功能
- Angularjs:控制器的代码组织
- 简单的AngularJS控制器不起作用
- 如何从 angularjs 控制器访问$resource
- 在 html5 视频结束时调用 AngularJS 控制器函数
- AngularJS控制器内部的功能
- AngularJS控制器中基于值的重定向