国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

angular.js - AngularJS中form的input控件綁定問題
曾經(jīng)蠟筆沒有小新
曾經(jīng)蠟筆沒有小新 2017-05-15 16:53:30
0
2
666

我從官方文檔中了解到當(dāng)給form指定name,則會(huì)將form添加到scope中,利用form的name來取得form對(duì)象;同時(shí)也能根據(jù)控件的name,從form對(duì)象中取得控件對(duì)象。
如:

<form role="form" name="infoForm">
    <input name="name" class="xxx" ng-model="xxx">
</form>

在controller中

var form = $scope.infoForm;
//如果控件內(nèi)容發(fā)生改變
if(form.name.$dirty) {
    ...
}

現(xiàn)在遇到的問題是:
有一系列控件是通過ng-repeat生成的,我嘗試過"name = xx{{$index}}"來指定不同的控件,

<form name="adminForm">
    管理員名單
    <p ng-repeat="manager in theEditingRobot.managers">
      <p class="cx-inputer">
        <input name="manager{{$index}}" type="email" placeholder="請(qǐng)輸入郵箱"
               ng-model="manager.val" ng-blur="checkManager($index)">
      </p>
    </p>
</p>

結(jié)果發(fā)現(xiàn),雖然在html頁面中可以看到ng-repeat生成的控件name分別為xxx0,xxx1等,但是查看form對(duì)象屬性的時(shí)候發(fā)現(xiàn),沒有xxx0,xxx1等屬性,而只有xxx{{$index}}屬性,且該屬性表示ng-repeat生成的最后一個(gè)input控件。如圖,

html頁面:


如圖所示,ng-repeat生成了2個(gè)input控件

但是在controller中調(diào)試時(shí)發(fā)現(xiàn),form中沒有manager0和manager1屬性,而只有manager{{$index}},該屬性表示manager1

推斷是ng-repeat展開發(fā)生在form添加到scope行為后。那么,如何才能通過form獲取到所有的控件對(duì)象?為什么$scope.adminForm顯示的是Constructor而不是Object?

PS:我使用的是yeoman自動(dòng)生成的框架
PPS: 還發(fā)現(xiàn)form顯示instantiate.c的情況,仍然出現(xiàn)上述問題
JSFiddle鏈接:https://jsfiddle.net/xwadh6kt/1/

曾經(jīng)蠟筆沒有小新
曾經(jīng)蠟筆沒有小新

全部回復(fù)(2)
阿神

<input name="xxx{{$index}}">

注意,表單元素的 name 只能是字符串,無法構(gòu)造數(shù)組或?qū)ο蟮葦?shù)據(jù)類型,但是字符串里可以用雙大括弧解析變量。

剛好回答的時(shí)候我正在做一個(gè)類似的東西,動(dòng)態(tài)生成的表單組使用 ngRepeat 遍歷,給你看實(shí)際效果:

這是對(duì)應(yīng)的源代碼:

id 和 name 我都用了這種方式獲取唯一值。

世界只因有你

原因是angularjs的版本問題,我使用1.4的版本就沒有出現(xiàn)上述問題,
詳見:http://stackoverflow.com/questions/24020503/angular-ng-repeat-with-ng-...

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板