我有兩個指令定義了我想在我的頁面上使用的兩個元素。如果我在頁面上使用這兩個指令,只會渲染第一個指令。我敢肯定我打破了一些角度的規則,但不知道是什麼。通過指令的兩個自定義元素,只有一個在頁面上呈現
指令:
//The template and handler for the set username button
chatApp.directive('setUsernameButton', ['username', function(username){
function link(scope, element, attrs){
element.bind('click', function(){
username.setUsername();
scope.$parent.$apply();
});
};
var template = '<div ng-disabled="username.invalidUsername" ng-class="{disabled: username.invalidUsername}" id="setNameButton" class="ui teal button">Set Name</div>'
return {
restrict: 'E',
replace: true,
template: template,
link: link,
scope: false
};
}]);
//The template and handler for username input field
chatApp.directive('usernameInputField', ['username', function(username){
function link(scope, element, attrs){
element.bind('keydown', function(e){
if(e.keyCode == 13){
username.setUsername();
scope.$parent.$apply();
}
});
};
var template = '\
<div class="ui input">\
<input ng-model="username.name" type="text" placeholder="Username...">\
</div>'
return {
restrict: 'E',
replace: true,
template: template,
link: link,
scope: false
};
}]);
HTML摘錄:
<div ng-if="!username.nameSet" class="ten wide column">
<set-username-button />
<username-input-field />
</div>
能否請您提供的jsfiddle –
@ adib.mosharrof我能不能在使用的jsfiddle角樣本演示?我似乎無法以非常簡單的方式將它綁定到我的模塊。 'var chatApp = angular.module(「chatApp」,[]);''
''''''''只是拋出'[$ injector:nomod]模塊'chatApp'不可用! –是的,即使我看到..嘗試使用codepen .. 您正在注入'用戶名'到您的指令,但沒有用戶名的服務。 –