2014-10-29 60 views
2

你會如何在一個表單中實現ng-required和角度ui-ace?ng-angular with ui-ace

這是我的標記:

<form name="scriptform"> 
    <div name="script" 
     ui-ace="{ onLoad: configureAce }" 
     ng-required="" 
     ng-model="someCodez"> 
    </div> 
</form> 

{{ scriptform }} 

出似乎因爲{{scriptform}}上面沒有打印出任何形式的驗證ACE是不掛鉤的角度表單驗證框架, 盒子 'someCodez'爲空時出錯。

+0

目前我有一個非常醜陋的工作,圍繞使用ace「onChange」cb。 – marko 2014-10-30 07:32:25

回答

2

看着文檔,我認爲ng-required屬性只與<input>元素一起工作,所以這種方法可能是不可能的。

但是,您可以通過更改表單組件本身的$setValidity來實現類似的結果。例如,當用戶不再改變的王牌編輯內容:

$scope.configureAce = function() { 
    return { 
    onLoad: function (editor) { 
     editor.on('blur', function() { 
     if (/* test validity of someCodez */) 
      $scope.scriptForm.script.$setValidity('scriptSyntax', true); 
     else 
      $scope.scriptForm.script.$setValidity('scriptSyntax', false); 
     $scope.$digest(); 
     }); 
    } 
    }; 
}; 

$setValidity第一個參數是一個自定義字符串可以檢查和F.E.用於向用戶顯示錯誤狀態。查看相關文檔:https://docs.angularjs.org/api/ng/type/ngModel.NgModelController

+0

是的這幾乎是我在做什麼。編輯器事件似乎是在當前版本中將其掛鉤的唯一方式。 thx爲一個很好的答案! – marko 2014-12-13 12:52:41