使用Restangular并尝试从$scope中为一个var设置多个参数
Using Restangular and trying to set multiple parameters to a var from $scope
我正在学习Angularjs和使用Restangular连接到Rails服务器API。我似乎缺乏一个基本的了解如何从一个形式分配参数到一个变量,我将在我的函数中使用到我的rails API。
这是我的控制器(或相关部分):.controller('NewCtrl', ["$scope", "Restangular", function($scope, Restangular) {
var passages = Restangular.all('passages');
var allPassages = passages.getList();
var newPassage = {
book: $scope.passages.book
};
$scope.add = function() {
passages.post(newPassage);
};
这是我的表格:
<h1>Add New Passage</h1>
<form name="myForm" ng-submit="add()" ng-controller="NewCtrl" class="my-form">
Book: <input name="passages.book" required><span class="error" ng-show="myForm.input.$error.required">Required!</span><br>
<input type="submit" id="submit" value="Submit" />
</form>
在javascript控制台中,我得到以下错误:
TypeError: Cannot read property 'book' of undefined
at new <anonymous> (http://localhost:9000/scripts/controllers/main.js:38:27)
at invoke (http://localhost:9000/bower_components/angular/angular.js:3000:28)
at Object.instantiate (http://localhost:9000/bower_components/angular/angular.js:3012:23)
at http://localhost:9000/bower_components/angular/angular.js:4981:24
at update (http://localhost:9000/bower_components/angular/angular.js:14509:26)
at Object.Scope.$broadcast (http://localhost:9000/bower_components/angular/angular.js:8468:28)
at http://localhost:9000/bower_components/angular/angular.js:7614:26
at wrappedCallback (http://localhost:9000/bower_components/angular/angular.js:6995:59)
at wrappedCallback (http://localhost:9000/bower_components/angular/angular.js:6995:59)
at http://localhost:9000/bower_components/angular/angular.js:7032:26
我想我在如何从我的$scope形式中分配值到我的var中的值中缺少了一些东西。当我分配一个文字值说:book:"以弗所书"时,它工作得很好。谢谢你对这个问题的帮助
如何修复你的控制器:
.controller('NewCtrl', ["$scope", "Restangular", function($scope, Restangular) {
var passages = Restangular.all('passages');
var allPassages = passages.getList();
// Initialise $scope.passage:
$scope.passages = {
book: null
};
$scope.add = function() {
passages.post({
book: $scope.passages.book
});
};
}])
和标记:
<h1>Add New Passage</h1>
<form name="myForm" ng-submit="add()" ng-controller="NewCtrl" class="my-form">
Book: <input ng-model="passages.book" name="passages.book" required><span class="error" ng-show="myForm.input.$error.required">Required!</span><br>
<input type="submit" id="submit" value="Submit" />
</form>
相关文章:
- '这'在使用之前分配给了一个var
- JavaScript 在内部函数中保留一个 var
- jQuery-如何使var文本可点击,该文本放置在由更多元素组成的另一个var中(var,checkbox)
- 如何创建<p>标记,并在我单击它时将其分配给一个var
- 在 JavaScript 中,当一次声明多个变量时,仅使用一个 var 语句是否有内存优势
- 为什么我已经定义的全局变量被IE8中的另一个var语句覆盖
- Javascript:在“this”关键字之前有一个“var”关键字
- JS:我应该在点击(或等效)事件中设置一个var/let吗?
- Angularjs.then函数创建一个var以传递到外部.then
- 如何为路由实现另一个var参数名称
- 用javascript创建一个var;修改脚本以创建var用法
- 另一个var中的setDate方法返回不同的值
- 保护API令牌,使其成为我的index.js中的一个var
- 一个Var,多个createElement
- 你能从数组中调用一个var,而不是它的值吗
- 使用Restangular并尝试从$scope中为一个var设置多个参数
- 如何在jquery或javascript中连接另一个var字符串中的var
- 我如何定义一个var作为对象从对象在for循环
- 为什么我们需要使用一个“var”来定义许多变量?
- 为什么可以't我使用ajax将一个var从php导入到js