我正在重写这个问题,因为我认为原文不太清楚.
基本上,我有一个'wrapper'指令,我试图动态地将属性添加到一个包装(transcluded)元素.我可以让它工作,但Angular似乎并没有意识到添加后的新属性.
如果我使用,$compile那么Angular会识别它们 - 但是以双重编译被转换的内容为代价,在这种情况下它options会使select标记中的数量加倍.
这里是一个plunker什么我试图能证明(有评论),下同代码如下对于那些谁可以查看代码,并暗示答案只是看:(注意-我的最终目的是检查自定义指令valid-form-group的required属性,如果发现将其应用于包含的select标记)
HTML
<body ng-controller="MainCtrl">
<form name="validationForm" novalidate>
<valid-form-group class="form-group" ng-class="{'has-error': validationForm.validInfo.$error.required}" required>
<select ng-model="data.option" ng-options="option.id as option.message for option in selectOptions" name="validInfo" id="validInfo">
<option value="">-- Select a Question --</option>
</select>
</valid-form-group>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
JS
var app = angular.module('plunker', [])
.controller('MainCtrl', function($scope) {
$scope.selectOptions = [
{id: 1, message: 'First option'},
{id: 2, message: 'Second option'},
{id: 3, message: 'Third option'}
];
}) …Run Code Online (Sandbox Code Playgroud)