私は私のページでこの選択:AngularJSは、選択入力NG-モデルアクセス
<select multiple id="userId" class="form-control" ng-model="ctrl.selectData.currentUser"
ng-options="user.id as user.firstName + ' ' + user.lastName for user in ctrl.users"
ng-change="ctrl.getProducts()">
</select>
と私は持っている、これはAngularJSコントローラー:私ができるコントローラのaddProduct機能で
app.controller("MainController", ["$http", "$routeParams", function($http, $routeParams) {
var self = this;
var selectData = {
currentUser: "test"
}
self.getUsers = function() {
$http.get("users/all").then(function(response) {
self.users = response.data.items;
})
};
self.getProducts = function() {
$http.get("products/all?userId=" + self.selectData.currentUser).then(function(response) {
self.products = {"count": response.data.count, "items": response.data.items};
});
self.userChoosed = true;
alert(self.selectData.currentUser);
};
self.addProduct = function() {
alert(self.addForm.title + " CU:" + self.selectData.currentUser);
$http({
method: "POST",
url: "products/add",
data:"title=" + self.addForm.title + "&description=" + self.addForm.description + "&price=" + self.addForm.price + "&ownerId=" + self.selectData.currentUser
}).then(function successCallback(response) {
alert("success");
}, function errorCallback(response) {
alert("error" + response.data);
});
};
}]);
」 selectData.currentUserを取得します。これはgetProducts関数(この関数はselectData.currentUserを使用してデータベースから項目をロードし、実際には動作しますが、私は見ることができます)では動作しますが、addProductでは機能しません。
フォームの送信機能です。だから、私が "送信"ボタンをクリックすると、何もしません。しかし、もし私が "CU:" + self.selectData.currentUserをアラート機能で削除すると、それは動作し、私のアラートを表示します(もちろん、サーバーへの正しいポストリクエストを送信しません)。
どうすればよいですか?内部の警告機能でselectData.currentUserを使用してng-submitが何もしないのはなぜですか?
プラッカーが役に立ちます – HebleV