2013-12-17 62 views
0

考慮(從http://www.ng-newsletter.com/posts/validations.html)這個例子標記:如何使用JavaScript代替自定義HTML屬性的Angular Forms?

<div class="row"> 
    <div class="large-12 columns"> 
    <label>Your name</label> 
    <input type="text" 
     placeholder="Name" 
     name="inputNameAttributeValue" 
     ng-model="signup.name" 
     ng-minlength=3 
     ng-maxlength=20 required /> 
    <div class="error" 
     ng-show="signup_form.name.$dirty && signup_form.name.$invalid"> 
     <small class="error" 
     ng-show="signup_form.name.$error.required"> 
     Your name is required. 
    </small> 
    <small class="error" 
      ng-show="signup_form.name.$error.minlength"> 
      Your name is required to be at least 3 characters 
    </small> 
    <small class="error" 
     ng-show="signup_form.name.$error.maxlength"> 
     Your name cannot be longer than 20 characters 
    </small> 
    </div> 
    </div> 
</div> 

有沒有辦法來完成同樣的事情,但使用JavaScript,而不是定製的角屬性?

例如,有沒有一種方法可以使用JavaScript代替這些Angular html屬性:ng-model,ng-minlength,ng-maxlenth,ng-show?

編輯: 只是爲了澄清,我正在尋找一個使用Angular JavaScript API的解決方案。我想要一個單獨的JavaScript文檔(鏈接自我的HTML文檔),它使用Angular JavaScript API。例如,是否有一種方法可以使用Angular API而不是自定義的Angular HTML屬性爲特定的表單字段指定ng-model?

+1

您是否在'如何在不使用Angular的情況下完成此任務'?你可以用jQuery從頭開始,但是你沒有利用Angular提供的東西。或者我誤解了你? –

+0

有辦法做所有你問的東西,但爲了使它更容易,AngularJS被創建。 – Sangram

+0

我更新了我的問題。請參閱最後的「編輯:」部分。我試圖找出是否有辦法用Angular來實現這一點。而且,我想使用「最佳實踐」類解決方案。所以,如果完成我所追求的唯一方法被認爲是一種「哈克」解決方案,我不會朝這個方向前進。我是Angular的新手,所以我想弄清楚什麼是可能的。 – edt

回答

1

據我所知,你想從javascript中添加一個指令(例如ng-model),類似於你如何用jQuery來做。 簡短回答:不要這樣做。

更長答案:這可能在技術上是可行的,但它會違反AngularJS的基本原則。你的控制器不應該觸及HTML 的所有,實際上任何應該直接操作HTML的代碼都應該放在一個指令中。該指令應直接放在HTML中的輸入中,這正是你想要避免的。

如果在您的HTML中放置指令對您的項目不實用,那麼也許您應該重新考慮使用AngularJS。

有一個相當長的(和好寫的)回答這裏#2這也解釋了「如何在AngularJS想」,你可能會發現,它的利益:https://stackoverflow.com/a/15012542/179024

這也將是有趣的,知道你爲什麼要去做這個?做事往往有一種「角度的方式」,但它可能與我們以前做的不同。

+0

很好的答案和謝謝你的鏈接。據說,我不會設計我的頁面,然後用DOM操作來改變它。 – edt

+0

很高興聽到它!我希望你的項目順利:) –

相關問題