2013-03-13 61 views
2

我有,我已經歸於形式角自定義表單驗證和指令

<form myValidations> 

app.directive('myValidations', function(){ 
return{ 
    //require: 'ngModel', note its commented out 

    link: function(s,e,a,ctrl){//note the emphasis on the ctrl 


    } 
} 
}); 

現在我將如何握這個CTRL $解析器,如果我沒有「需要自定義驗證指令:ngModel '爲我做。

我可以找到一個元素,然後在一些函數中調用它的ng模型返回一個ng模型控制器?這樣我可以從那裏#$解析器?

+0

你能提供一個jsfiddle與你的相關代碼嗎? – odiseo 2013-03-14 00:24:47

回答

4

回答你的問題,你可以撥打angular.element('elementSelector').controller('ngModel')。它會以與require相同的方式返回ngModel。

問題是:如果你正在創建一個新的指令,爲什麼不使用它的require功能呢?有很大的可能性,你沒有使用正確的解決方案來解決你的問題。所以更多的代碼會讓我們有機會進一步啓發你的問題。

+0

謝謝,你真棒,嗯,我需要包含一個驗證器指令內的一切,所以我需要在多個ng模型上執行$ parser,所以我需要假設只能執行.controller整個形式,我把它歸結爲。謝謝。 – user2167582 2013-03-14 16:41:13

+0

您的驗證是否將所有字段考慮在一起?或者對於所有領域單獨是相同的?對於第一種情況,您可以創建一個適用於「form」並使用[name屬性](http://docs.angularjs.org/api/ng.directive:form)的指令來公開所有子控件。對於後者,您可以創建一個agnostic指令,該指令爲其應用的元素添加['$ parser'](http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController)。 – 2013-03-15 02:18:31

+0

單獨,我正在檢查單獨的輸入,它們需要控制器。爲了這個任務,我被要求將整個驗證命名爲一個指令。 – user2167582 2013-03-15 16:16:12