簡體   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