我将此字段用于编辑视图和创建视图
<input data-ng-model="userInf.username" class="span12 editEmail" type="text" placeholder="me@example.com" pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}" required />
控制器中的我有这段代码来禁用输入元素:
function($rootScope, $scope, $location, userService)
{
//etc
$(".editEmail" ).attr("disabled", disable); // no idea how to do in angular
}
请帮忙。
答案 0 :(得分:79)
使用ng-disabled或带有ng-class
的特殊CSS类<input data-ng-model="userInf.username"
class="span12 editEmail"
type="text"
placeholder="me@example.com"
pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}"
required
ng-disabled="{expression or condition}"
/>
答案 1 :(得分:12)
您需要使用ng-disabled指令
<input data-ng-model="userInf.username"
class="span12 editEmail"
type="text"
placeholder="me@example.com"
pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}"
required
ng-disabled="<expression to disable>" />
答案 2 :(得分:5)
我为此创建了一个指令(angular stable 1.0.8)
<input type="text" input-disabled="editableInput" />
<button ng-click="editableInput = !editableInput">enable/disable</button>
app.controller("myController", function(){
$scope.editableInput = false;
});
app.directive("inputDisabled", function(){
return function(scope, element, attrs){
scope.$watch(attrs.inputDisabled, function(val){
if(val)
element.removeAttr("disabled");
else
element.attr("disabled", "disabled");
});
}
});
答案 3 :(得分:1)
您的标记应包含一个名为 ng-disabled 的附加属性,其值应为将被评估为true或false的条件或表达式。
<input data-ng-model="userInf.username" class="span12 editEmail"
type="text" placeholder="me@example.com"
pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}"
required
ng-disabled="{condition or expression}"
/>
在控制器中,您可能会有一些代码会影响ng-disabled指令的值。
答案 4 :(得分:0)
<input type="text" input-disabled="editableInput" />
<button ng-click="editableInput = !editableInput">enable/disable</button>
app.controller("myController", function(){
$scope.editableInput = false;
});
app.directive("inputDisabled", function(){
return function(scope, element, attrs){
scope.$watch(attrs.inputDisabled, function(val){
if(val)
element.removeAttr("disabled");
else
element.attr("disabled", "disabled");
});
}
});
答案 5 :(得分:0)
<input data-ng-model="userInf.username" class="span12 editEmail" type="text" placeholder="me@example.com" pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}" required ng-disabled="true"/>