繁体   English   中英

从HTML动态加载angularjs控制器

[英]Load angularjs controller dynamically from html

我有2个控制器。 我从第一个控制器中获得了一个复合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。.:)与指令和控制器相比,使用Services更好。表示服务数据.. :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM