私は、データベースからのドロップダウンオプションを引っ張るの工場を持っている:その値でドロップダウンからオプションを選択します - Angularjs
app.factory('populateDDL', function($http) {
'use strict';
return function (tbl,key) {
var json,
data = JSON.stringify({
sKey: key,
sTableName: tbl
});
return $http.post('util.asmx/populateDDL',data).
then(function(response) {
return JSON.parse(response.data.d);
});
};
});
私はその後、私のコントローラで選択/ドロップダウン・リストに、そのデータを適用します。
app.controller('userSettings', function($scope, $http, populateDDL) {
$scope.clinicLocations = new populateDDL('locations',key).
then(function(response) {
console.log(response);
$scope.clinicsDDL = response.locations;
$http({
url: 'util.asmx/returnUser',
method: 'POST',
data: {sUserId: uid},
})
.success(function(user) {
$scope.user = user.d;
})
.error(function(data, status, headers, config) {
console.log(data+', '+status+', '+headers+', '+config);
});
});
});
ここでは、selectタグがどのように見えるかです:
<select ng-model="clinicsDDL.item" ng-options="item.name for item in clinicsDDL track by item.id" ngRequired />
$に入れられるリストデータのドロップダウンscope.clinicsDDLは次のようになります。
私のコントローラ内部{
"__type": "User",
"FirstName": "Erik",
"LastName": "Grosskurth",
"DefaultLocationId": "39"
}
私は、ドロップダウンリストを読み込む/選択してから、私は、ユーザーIDを取る:DBから
[{
"id": "19",
"name": "other clinic"
}, {
"id": "39",
"name": "My clinic"
}]
返されたユーザデータは次のようになりますユーザー情報のためDBに提出してください。このユーザー情報が戻ってきます。それから、DBから返される「DefaultLocationId」に基づいて、以前に設定されたリストから特定のオプションを選択したいとします。
どうすればいいですか?
$scope.clinicsDDL.item = $scope.clinicsDDL[0];
^^^私は常に同じように形成される配列に依存することはできませんので、私は動作しません。私は、整数ではなく "DefaultLocationId"に基づいて配列アイテムをターゲットにする必要があります。
jQueryでは、$( 'clinicsDDL option [value = "19"')を使用してセレクタをターゲットにします。doSomething();
私はそれがこのような角度何かでそのようなことだろうと考えました。
$scope.clinicsDDL.item = $scope.clinicsDDL[value="19"];
^^^それは事前選択は、参照のみを使用しています
angular.jsのようにデフォルト値を使用することができます:13424にReferenceError:_あなたのプロジェクトとあなたのhtmlにlodashを含める必要が –
定義されていません。 [lodash.com](https://lodash.com/)を参照してください。 –
これは、角度ソリューションではありません。私は他のプラグインでも1行の修正を完了することができます。私は純粋な角のソリューションを探しています、ありがとう –