我有一個定義,說一個指令,如下:指令內部裝飾AngularJS指令模板
angular.module('some-module').directive('someDirective', function() {
return {
restrict: 'E',
replace: 'true',
templateUrl: 'some-template.html',
link: link,
require: '^form',
transclude: true,
scope: {
decorate: '=',
}
};
});
比方說,這是一些-template.html看起來如何(有更實際的模板雖然):
<div ng-transclude></div>
這是我將如何使用該指令:
<some-directive decorate="true">
<input name="x" type="number" ng-model="x">
<input name="y" type="number" ng-model="y">
</some-directive>
<some-directive decorate="false">
<input name="a" type="number" ng-model="a">
<input name="b" type="number" ng-model="b">
</some-directive>
我WA NT上的指示做的是操作DOM,這樣如果decorate
是true
然後,兩個輸入字段應該與裝飾一些div
S作爲如下:
<div class="some-outer-class">
<div class="some-class-1">
<input name="x" type="number" ng-model="x">
</div>
<div class="some-class-2">
<input name="y" type="number" ng-model="y">
</div>
<div><i class="some-glyph-icon"></i></div>
</div>
如果decorate
屬性是假的,或缺席,指令不應該做任何操作。
想不出如何做到這一點。任何幫助表示讚賞。
如何操作** ** DOM在控制器中?控制器沒有** DOM **元素。他需要使用'link'功能! –
當然你可以從控制器操縱DOM - )這是1.5中的actullay推薦方式。 –
他可以使用控制器中的angular.element()或document.getElementById()方法並進行操作。 –