2013-07-01 48 views
37

我使用這個字段的編輯視圖和CREATE VIEW如何使用angular.js

<input data-ng-model="userInf.username" class="span12 editEmail" type="text" placeholder="[email protected]" pattern="[^@][email protected][^@]+\.[a-zA-Z]{2,6}" required /> 
控制器我有這樣的代碼來使輸入元素

禁用一個輸入框:

function($rootScope, $scope, $location, userService) 
{ 

//etc 
    $(".editEmail").attr("disabled", disable); // no idea how to do in angular 
} 

請幫忙。

+5

你需要使用[ng-disabled](http://docs.angularjs.org/api/ng.directive:ngDisabled) –

+0

@maqjav這個問題明確聲明應該以AngularJS術語提供解決方案,而不是jQuery 。 – Stewie

+0

@Stewie你是對的。我刪除了評論;) – maqjav

回答

11

您需要使用ng-disabled指令

<input data-ng-model="userInf.username" 
     class="span12 editEmail" 
     type="text" 
     placeholder="[email protected]" 
     pattern="[^@][email protected][^@]+\.[a-zA-Z]{2,6}" 
     required 
     ng-disabled="<expression to disable>" /> 
+3

這是舊的,但你是第一個,並有完全相同的正確答案我不明白所有upvotes在其他答案 –

5

一個特殊的CSS類我創建了一個指令,這個(角穩定的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"); 
    }); 
    } 
}); 
+1

我必須使用角度1.0.8,它沒有ng-禁用指令,所以這很有用! –

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"); 
    }); 
    } 
}); 
+2

有點解釋會有幫助。 – ouflak

0
<input data-ng-model="userInf.username" class="span12 editEmail" type="text" placeholder="[email protected]" pattern="[^@][email protected][^@]+\.[a-zA-Z]{2,6}" required ng-disabled="true"/> 
+0

有點解釋會有幫助。 –

1

您的標記應包含一個附加屬性,叫做NG-禁用,它的值應該是一個條件或表達式將評估爲真或假。

<input data-ng-model="userInf.username" class="span12 editEmail" 
     type="text" placeholder="[email protected]" 
     pattern="[^@][email protected][^@]+\.[a-zA-Z]{2,6}" 
     required 
     ng-disabled="{condition or expression}" 
/> 

而在控制器中,您可能有一些代碼會影響ng-disabled指令的值。