AngularJS(バージョン1)で非常に最小限のフォームを作成しようとしています。
ng-modelと$scope
を使用して、私がfluff
という名前のオブジェクトを更新しようとしています。ユーザーが送信をクリックすると、この$http
コールで使用する必要があります。
私は非常に混乱しています。私はng-modelがこれをスコープ内のオブジェクトにバインドすると考えました。しかし、それは常に$scope.fluff
が更新されていない空白の原因を返します。
ただし、私が{{ fluff.link }}
を注入すると、これはテキストボックスに基づいて更新されます。ここで
は、ビューに私のフォームである:ここでは
<form name="fluffForm" ng-submit="submitform()">
<span>Link: <input type="text" name="link" ng-model="form.link"></span>
<span>Description: <input type="text" name="description" ng-model="form.desc"></span>
<button type="submit">submit</button>
</form>
</div>
は私のコントローラである:ここでは
(function(){
'use strict';
angular.module('fluff').controller('FormController', FormController);
FormController.$inject = ['$scope', '$rootScope', '$routeParams', '$window', '$http'];
function FormController($scope, $rootScope, $routeParams, $window, $http){
var form = this;
$scope.fluff = {}; // form data in json object(?) to be posted to mongo database
$scope.submitform = function(){
$scope.fluff.link = form.link;
$scope.fluff.description = form.desc;
console.log('form-data', $scope.fluff);
$http({
method: 'POST',
url: 'http://fluff.link/share',
data: $scope.fluff,
headers: {'Content-type': 'application/x-www-form-urlenconded'}
}).success(function(data){
console.log('Call to API was successful');
if(data.errors){
console.log('Data Errors');
console.log('error:', $data.errors.name);
//show errors - part of the response in the REST API have to make this portion up myself
$scope.errorName = $data.errors.name;
} else {
console.log('returned share id', data);
var fluff = 'fluff/link/'+ data;
$window.location.href = fluff;
}
});
}
}
})();
は私のルートです:
(function(){
'use strict';
angular.module('fluff').config(Config);
Config.$inject = ['$routeProvider'];
function Config($routeProvider){
$routeProvider.when('/', {
templateUrl: 'views/index.client.view.html',
controller: 'FormController',
controllerAs: 'form'
});
}
})();
は、開発者コンソールから、いくつかのログを追加しましたクロム:
in submitform FormController {link: "test", desc: "test"}
fluff.form.controller.js:24 form-data Object {link: undefined}
これは機能しました。それが許せば私の答えで更新されます!
私はコードを作成して動作します。 http://codepen.io/thierry36t/pen/ObzjRd?editors=1111を参照してください。console.logには何が表示されていますか? – Thierry
私は[plunker](https://plnkr.co/edit/hZeiEzlvETFEmQHfuLx4)を作成しましたが、それも動作します。どこでFormControllerを定義しましたか?私はそれをフォーム自体に定義しました。 –
'console.log($ scope.fluffForm)'は何を返しますか?それはあなたの記述とそれにリンクフィールドを持っていますか?もしそうなら、 '$ modelValue'と' $ viewValue'sは何ですか? – mhodges