Düğme formu yerleştirmek için kullanacağım bir açısal yönergeye sahibim. Şablon, kullanıcının onu görmesi gerekene kadar gizlenir. Kendi başına çalışan basit bir şablon, ancak daha büyük bir formda birleştirdiğimde şablon görünmez.Açısal Şablon ng-hide ile gösterilmiyor
.directive('buttonToggle', function() {
return {
restrict: 'A',
scope: {
myBtnArr: "="
},
template: '<button ng-click="click()">{{ myBtnTxt[myBtnArr] }}</button>',
link: function(scope) {
scope.myBtnTxt = ["AND", "OR", "NOT"];
scope.click = function() {
scope.myBtnArr = (scope.myBtnArr < 2 ? scope.myBtnArr + 1 : 0);
}
}
};
});
Sonra çalışır html:
<div button-toggle my-btn-arr=0></div>
Ve html parçacığı çalışmaz:
<tr ng-show="rowsShown >= 2"><td>Search by:</td><td><div button-toggle my-btn-arr=0></div><select ng-model="selection2" ng-options="option.text for option in options"></select><input type="text" size="20" ng-model="queryF2"><ng-md-icon icon="add_circle_outline" style="fill:#a9a9a9" ng-click="addSearchField();"></ng-md-icon> <ng-md-icon icon="remove_circle_outline" style="fill:#a9a9a9" ng-click="removeSearchField();"></ng-md-icon></td></tr>
ben bu çalıştırdığınızda İşte
direktifi olduğunu Daha büyük kısmi html (şablonla ilgisi olmayan bir denetleyici tarafından kontrol edilir) Bu hatayı alıyorum:Error: [$compile:nonassign] Expression '0' used with directive 'buttonToggle' is non-assignable!
Sadece bu şablon işlevini kapsamda sarın. Hayır! Ben
link: function(scope) {
scope.myBtnTxt = ["AND", "OR", "NOT"];
scope.click = function() {
scope.$apply (function() {
scope.myBtnArr = (scope.myBtnArr < 2 ? scope.myBtnArr + 1 : 0);
})
}
}
bu hatayı alıyorum ... bunu yaparken:
Error: [$rootScope:inprog] $apply already in progress
Yani açıkçası yanlış kapsamını sarma ile bir sorun, ama bunu düzeltmek için ne kadar emin değildi. Düşüncesi olan var mı?
Bu, yanlış nereye gitmiş olabileceğimi tahmin etmeme neden oldu ... şunu deneyelim ve size geri döneyim. –
Çalıştı! Haklısın, sadece tek yönlü bir bağa ihtiyacım vardı. Teşekkürler! –