2017-10-04 306 views
0

我已將產品從Angular 1.2.x更新到1.4.x多重選擇跟蹤行爲角度與1.4.x的差異

將angularjs更新爲1.4.x後;在這裏,我現在面臨的問題

我有什麼: 我已經添加代碼片段,其中角1.2.0這裏是JSFIDDLE與1.4.8具有相同的代碼。

說明

選擇從多選框,任何一個用戶,將其激活。 選擇第二個用戶(使用Ctrl鍵)。

觀察: 1.2.x的:首先選擇的值仍然有效(真) 的1.4.x:選擇第二值的第一值有效標誌被重置之後。

爲什麼會發生這種情況? 我該怎麼做才能在1.4.x中獲得現有的(1.2.x)輸出

注意:我的英文寫作不太好。請避免語法錯誤或糾正它:)

謝謝!

var app = angular.module('test',[]); 
 
app.controller('selectIssue',function($scope){ 
 
\t $scope.users = [{ 
 
    \t name:"Rohit", 
 
    active:false 
 
    }, 
 
    { 
 
    \t name:"Virat", 
 
    active:false 
 
    }, 
 
    { 
 
    \t name:"Viky", 
 
    active:false 
 
    }]; 
 
    $scope.selectedName = []; 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script> 
 
<div ng-app="test"> 
 
    <div ng-controller="selectIssue"> 
 
    <div> 
 
    <select multiple ng-model="selectedName" ng-options="user.name for user in users track by user.name"></select> 
 
    </div> 
 
    Selected value table : 
 
    <div> 
 
     <table border="1"> 
 
     <tr> 
 
      <td>Name</td> 
 
      <td>isActive</td> 
 
      <td>Output</td> 
 
     </tr> 
 
     <tr ng-repeat="n in selectedName"> 
 
      <td>{{n.name}}</td> 
 
      <td><input type="checkbox" ng-model="n.active"></td> 
 
      <td>{{n}}</td> 
 
     </tr> 
 
     </table> 
 
    </div> 
 
    </div> 
 
</div>

+0

「我應該怎麼做才能在2.4.x的現有(的2.1.x)輸出」等一下,我們採取1.X又名AngularJs或2.X又名角或Angular 2? – DanteTheSmith

+0

您必須對select進行ng更改,然後使用它將值推入模型中。看到這個SO帖子:https://stackoverflow.com/questions/13473096/angularjs-select-multiple-options-from-object – rrd

+0

@DanteTheSmith更新了這個問題。謝謝! – Sachink

回答

0

你沒有更新$ scope.names當你改變複選框,但$ scope.selectedNames。 這意味着你必須在複選框上使用ng-change來更新$ scope.names。

$scope.updateName = function(name) { 
    angular.forEach($scope.names, function(n) { 
     if (n.name === name.name) { 
      n.active = name.active 
     } 
    }) 
} 

這是一個更新的fiddle

+1

這是事實。但爲什麼它在1.2中仍然困惑我:) – DanteTheSmith

+0

爲什麼要我更新我的ng選項?我正在更新ng-model(選定的值),如果我已經從列表中刪除活動用戶,並且在再次添加之後它不活躍,則不是問題。我有關於用戶在列表中沒有觸及他們,並在列表中添加另一個之後;現有的用戶都得到重置 – Sachink

+0

@DanteTheSmith在這裏同樣困惑? – Sachink