2017-07-17 103 views
0

我們有一個廣泛構建的指令的現有系統。我試圖用組件慢慢地,一點點地替換它。 我有一個看起來像這樣的組件:包含指令的角度1.6組件

var GenericDataController = (function() { 
    function GenericDataController() { 
     this.dtoData = ''; 
    } 
    GenericDataController.prototype.$onInit = function() { 
     this.dto = angular.fromJson(this.dtoData); 
    }; 
    return GenericDataController; 
}()); 
var GenericData = (function() { 
    function GenericData() { 
     this.bindings = { 
      dtoData: '@', 
     }; 
     this.controller = GenericDataController; 
     this.templateUrl = 'GenericDataTemplate'; 
    } 
    return GenericData; 
}()); 
App.component('generic', new GenericData()); 

通用發生在一個JSON字符串dtoData需要被分解成在控制器的DTO對象。然後在模板我有這樣一幫老指令:

<div directive1="{{$ctrl.dto.Directive1}}" 
    directive2="{{$ctrl.dto.Directive2}}"> 
</div> 

當你把一個斷點指令compile功能裏面,你看到,在tAttrs{{$ctrl.dto.Directive1}}尚未解決,即保持爲字符串 「{{$ ctrl.dto.Directive1}}」。反正他們可以在compile函數中解決,所以它可以工作?我試圖做到這一點,因爲替換一切可能需要一段時間,並沒有立即可以測試的結果。

謝謝:)

編輯:其實想通了,更深層次的下跌中compile您可以訪問attrs這是tAttrs但分解成值...所以考慮這個問題解決了。

回答

0

實際上,我們發現compile內部存在attrs,它們是tAttrs,但解析爲值...因此,請考慮解決此問題。