2014-04-15 27 views
0

我可能有一個很基本的問題。 我有一個錨點的div元素。我想爲每個錨點添加ng(例如)。 在jQuery中,這將是一塊蛋糕,但與角我不知道如何正確地做到這一點。 我相信控制器不應該知道佈局,所以應該在模板級別上進行處理。創建一個簡單的指令,因爲這也沒有多大意義。如何避免使用角度重複代碼?

有什麼建議嗎?

+0

爲什麼不給他們添加'ng-click'? – gkalpak

+0

in ng-click我打算調用相同的函數,重複n次看起來不太好 – Anelook

+1

我不認爲多次添加'ng-click'會被視爲代碼重複。他們都在控制器中調用相同的功能。當您使用多個輸入標籤創建表單時,該代碼是否重複? – kubuntu

回答

0

控制器不應該知道佈局,我同意。

我認爲這取決於您的應用程序的類型。 如果我們在談論'形式',我認爲你應該使用某種'自動生成'佈局;我通常有創建類似於對象開始等形式的模板,諧音和指令:

var form = [ 
    { name : "username", type : "text", required : true }, 
    { name : "password", type : "password", required : true }, 
    { name : "login", type : "button", onClick : $scope.loginHandler } 
]; 

因此,這不是一個問題:它的指令/分/任何管理按鈕類型做正確的事情結合onClick功能適用於正確的事件。

但是,如果你的應用程序實際上使用了複雜的佈局,並且你不能依賴「自動生成」的東西,那麼綁定它的正確方法是在每個元素/元素組的ng-click內指定句柄函數。這並不意味着控制器'知道'佈局:它是知道控制器的佈局。 或者你可以混合使用jQuery和Angularjs;我不喜歡這種方法,我認爲有更好的方法,但它總是一種選擇。 PS:對不起,我的英文不好。