我做了一個自定義的角度指令,像這樣第二次:角定製指令有多個問題 - 不更換工作:真,不會觸發
HTML - mydirective(data-datasource="mydirectivedata", data-updatefn="mydirectiveupdate")
控制器 -
$scope.mydirectivedata = //array of objects from API service call using $http
$scope.mydirectiveupdate = function(a, b) {}
指令 -
.directive('mydirective', function() {
return {
restrict: 'E',
replace: true,
scope: {
mydirectivedata: '=',
mydirectiveupdate: '&',
},
controller: function($scope) {
$scope.updatefunction = function(id, type) {
$scope.mydirectiveupdate()(id, type);
};
},
templateUrl: '/partials/mydirective.html'
}
})
部分 -
<li data-ng-repeat="type in datasource.types">
<input id="{{type.id}}" type="radio" name="{{$parent.datasource.id}}" src="" alt="{{$parent.datasource.id}}" aria-label="type.name" checked ng-value="true" data-ng-class="radio-selector" data-ng-model="type.isDefault" data-ng-change="updatefunction($parent.datasource.id,type)">
<label for="{{type.id}}"><span style="background-image: url(undefined)"></span>
<h2 data-ng-bind="type.name">type.name</h2>
<p data-ng-bind="{{type.price}} | number :2" class="price">{{type.price}}</p>
<p data-ng-bind="type.description">type.description</p>
</label>
</li>
我的要求是:1。 當選擇輸入單選按鈕,觸發updatefunction
,並反過來mydirectiveupdate
函數傳遞所需的參數
的問題是:1。 如果我使用replace: true
在我的指令中,$scope.updatefunction
本身沒有被觸發 2.如果我不使用replace: true
,更新函數會被觸發,但每輸入一次點擊只會觸發一次。第二次點擊輸入時,該功能不會被觸發!
幫助!
建議您在[plunker](http://plnkr.co/edit/?p=catalogue)中進行工作演示。顯示的一些代碼在範圍屬性和html屬性之間不匹配。更何況'alt'和'src'對於無線電來說也沒有意義 – charlietfl