0
我遇到了動態生成的指令(使用函數)和角度表達式在屏幕上最終標記中過濾出來的問題。我創建了一個JSFiddle displaying the problem here。動態生成的模板中缺少角度表達式
我正在動態生成模板,因爲我們需要一種基於元素內部屬性生成標記的方法。
基本上限定當表達式像這樣:
angular.module('ui.directives', []).directive('uiBar', function() {
return {
restrict: 'E',
template: function(element, attrs) {
console.log('hello');
return '<div>lol: {{ user }}</div>';
}
};
});
並將其放置到身體像這樣:
<div ng-app="myApp">
<ui-bar>I should change to iambar</ui-bar>
</div>
將所得的標記是:
<div ng-app="myApp" class="ng-scope">
<ui-bar><div class="ng-binding">lol: </div></ui-bar>
</div>
表達是由於某種原因剝離出來。有沒有人經歷過這個?
您是否需要在視圖中顯示錶達式{{user}}?如果沒有,你可以在指令的(或它的父範圍)中定義'user',它將被顯示。它看起來像角無聲地編譯表達式,如果它無法找到名稱在範圍內(或父範圍)看看這個小提琴。 http://jsfiddle.net/qQPb6/ – javaCity
下面是另一個示例,顯示它實際上工作:http://jsfiddle.net/EM9wv/7/發生什麼事情是,angularjs編譯了你指定的ng-bind指令通過使用'{{user}}' – JoseM
也許Transclude可以與你想要的一起工作?鏈接:https://docs.angularjs.org/api/ng/directive/ngTransclude – SoEzPz