以下のコードを使用して、選択されたデフォルト値を正常に設定しましたが、このdropdpwnに触れないでコントローラに値を送るとnullになります。私はオプションの値を変更すると、値がコントローラに渡されます。ここで私は何が欠けているのですか?ng-repeatのデフォルトの選択値は、常にselectのコントローラにnullが送信されます
<select ng-model="detail.skuName"
class="form-input-wrapper form-select-hidden">
<option data-ng-repeat="sku in config.skuList" ng-selected="sku"
>{{sku}}
</option>
</select>
configは文字列の配列です。サンプルコードでは :
{"skuList":["abc", "xyz", "ghr"]}
ようにあなたはここに
EDIT助けてください。
'use strict';
angular.module('TheSimpleApp', [
'ui.router'
])
.config(['$stateProvider',
function($stateProvider) {
$stateProvider
.state('home', {
url: '/home',
views: {
'main': {
controller: 'HomeCtrl',
template: '<div>' +
'<h1>hello from parent</h1>' +
'<hr />' +
'<div ui-view="nameOtherThenSpace" ></div>' +
'<div>{{test}}</div>'+
'<select ng-model="detail.skuName" class="form-input-wrapper form-select-hidden">'+
'<option data-ng-repeat="sku in config.skuList" ng-selected="sku">{{sku}}'+
'</option>'+
'</select>'+
'<div>'+
'<a href="#" ng-click="send(detail)">send</a>',
}
}
})
.state('home.details', {
url: '/details',
views: {
"nameOtherThenSpace": {
template: "<h2>hello from a child</h3>",
controller: function($scope, $http, $state) {},
}
}
});
}
])
.controller('HomeCtrl', function($scope, $http, $state) {
$scope.test = "Test Me";
$scope.config = {"skuList":["abc", "xyz", "ghr"]};
$scope.send = function(detail){
alert(angular.toJson(detail));
}
})
.config([ '$urlRouterProvider',
function($urlRouterProvider) {
$urlRouterProvider.otherwise('/home');
}
]);
未定義が渡され、変更はすべての良い、値をドロップダウン、負荷に値をドロップダウン変更せずに送信をクリックして、問題を視覚化するために上記のコードでこのplunkerでscript.jsを交換してください。私はドロップダウン値を変更せずに正しく渡される値を探しています。
http://plnkr.co/edit/o91TgJXTcFVDFA9SUmSC?p=preview
どのように値をコントローラに送信していますか? – Delta
@Delta -
私はあなたの変数を設定しているコードを見ることなく、苦労しています。しかし、あなたはng-repeatの代わりにng-optionsを使うことに目を向けるかもしれません。 – Delta