選択に問題があります。私はprofileCtrlを利用するプロフィールビューを持っています。そのコントローラでは、私はdbからユーザ情報を取得し、スコープに入れます。私はまた、dbのconfigテーブルからすべての情報を取得し、それをrootScopeに挿入するサービスを使用します。私の質問と回答は、ユーザーの選択された回答がユーザー情報(スコープ)から来るconfigテーブル(rootScope)から来ています。私はselectを必要とします。これは、ユーザーがdb内のどのような回答をあらかじめ選択しています。以下は私のコードです。ng-optionsとng-selectedを使用した角度選択
プロフィールコントローラー:
app.controller('profileCtrl', function ($scope, $log, $http, $timeout, Data, Auth, dataShare, $sessionStorage, $rootScope, $confirm) {
$timeout(function() {
// get user's info from db and put it into scope
Data.get('profile/'+$rootScope.user.uid).then(function(data){
$scope.profs = data.data;
$scope.buttonText = 'Update Profile';
});
}, 100);
// get the configs from the configs service and put it in the rootScope
dataShare.getconfigs().then(function(data){
$rootScope.configs = data;
// get the answers from the config table for the select's options
$scope.availableAnswers = [
{ answer: $rootScope.configs[0].a1 },
{ answer: $rootScope.configs[0].a2 },
{ answer: $rootScope.configs[0].a3 },
{ answer: $rootScope.configs[0].a4 },
{ answer: $rootScope.configs[0].a5 }
];
});
// function executed on change from the select
$scope.selectedItemChanged = function() {
$log.log($scope.selectedAnswer);
}
// inline edit title
$scope.updateUser = function(data) {
Data.put('config/'+data.id, {profile_page_title:data.profile_page_title}).then(function (result) {
Data.toast(result);
});
};
$scope.saveProfile = function (profile) {
profile.roles = $rootScope.user.roles;
if(profile.uid.length > 0){
Data.put('profile/'+profile.uid, profile).then(function (result) {
$sessionStorage.user = profile;
$rootScope.user = $sessionStorage.user;
Data.toast(result);
});
}else{
Data.post('profile', profile).then(function (result) {
$rootScope.name = profile.name
Data.toast(result);
});
}
};
});
HTML:(私は簡単に読み取られるコードを凝縮しています)
<section class="row" id="" ng-repeat="profile in profs">
<div class="col-xs-12" id="questionWidget">
<h4>{{configs[0].question}}</h4>
<!-- user's answer from db -->
{{profs[0].answer}}
<select ng-model="selectedAnswer" ng-change="selectedItemChanged()" ng-options="a.answer for a in availableAnswers">
</select>
</div>
</section>
残念ながらそれは動作しません。 – Jason
申し訳ありませんが、私は動作するサンプルを作成しました。それがトリックですか? – Brian
あなたはロック!働いてくれてありがとう。 – Jason