在這裏我有一個登錄字段,密碼,用戶名和登錄按鈕。正如你可以看到它非常詳細。如何使指令減少冗長?
<form name='form' novalidate ng-submit="form.$valid && submit('/login')" ng-focus="showError=false" ng-controller='loginController' >
<h2>Login</h2>
<div class="form-group has-feedback" ng-class="{ 'has-error' : ((form.username.$touched || form.$submitted) && form.username.$invalid) || showError}">
<input ng-focus="showError=false" type="email" name="username" class="form-control" placeholder="Email" ng-model='data.username' ng-disabled="loading" required>
<span ng-show="((form.username.$touched || form.$submitted) && form.username.$invalid) || showError" class="glyphicon form-control-feedback glyphicon-remove"></span>
<p ng-show="(form.username.$touched || form.$submitted) && form.username.$invalid" class="help-block text-left">Enter a valid email</p>
</div>
<div class="form-group has-feedback" ng-class="{ 'has-error' : ((form.password.$touched || form.$submitted) && form.password.$invalid) || showError}">
<input ng-focus="showError=false" type="password" name="password" class="form-control" placeholder="Password" ng-model='data.password' ng-disabled="loading" required>
<span ng-show="((form.password.$touched || form.$submitted) && form.password.$invalid) || showError" class="glyphicon form-control-feedback glyphicon-remove"></span>
<p ng-show="(form.password.$touched || form.$submitted) && form.password.$invalid" class="help-block text-left">Enter a password</p>
</div>
<button type="submit" class="btn btn-primary btn-block" ng-disabled="loading">
Log in</button>
</form>
我反覆使用的那種
((form.username.$touched || form.$submitted) && form.username.$invalid) || showError
有沒有來縮小在這個例子中的代碼量一個聰明的方式表達?有沒有最佳做法?
你可以創建一個包裝每個表單組功能的指令 – 2014-10-06 20:16:00
@KevinB我怎麼去做這件事,因爲ng-show已經是一個指令了? – user1506145 2014-10-07 08:36:12
@Yoshi當有幾個不同的消息時,ngMessages是否有用?我只想顯示一條消息。 – user1506145 2014-10-07 08:37:22