使用 ng-option 提交对象
Submit object with ng-option
我无法通过 ng-option 向我的控制器提交对象。如果我提交表单,Category
对象是未定义的。
有人能给我指出正确的方向吗?
项目控制器
// Create new Item
$scope.create = function() {
// Create new Item object
var item = new Items ({
name: this.name,
...
category: this.category,
});
创建项目视图
<section data-ng-controller="ItemsController">
<div class="page-header">
<h1>New Item</h1>
</div>
<div class="col-md-12">
<form class="form-horizontal" data-ng-submit="create()" novalidate>
<fieldset>
<div class="form-group">
<label class="control-label" for="name">Name</label>
<div class="controls">
<input type="text" data-ng-model="name" id="name" class="form-control" placeholder="Name" required>
</div>
</div>
...
</div>
<div class="form-group">
<label class="control-label" for="category">Category</label>
<div class="controls" data-ng-controller="CategoriesController" data-ng-init="find()">
<select data-ng-model="category" ng-options="cat.name for cat in categories"></select>
</div>
</div>
<div class="form-group">
<input type="submit" class="btn btn-default">
</div>
感谢 "aurav gupta" 我找到了解决方案 http://fdietz.github.io/recipes-with-angular-js/controllers/sharing-code-between-controllers-using-services.html
问题是因为您使用了两个不同的控制器
因此它们会有 不同的作用域。
因此 category 对象是为 CategoriesController 而不是为 ItemsController
定义的
您可以通过将 CategoriesController 的代码放在 ItemsController 中以创建单个控制器来解决此问题,或者您可以使用 angular 服务来绑定两个控制器的范围变量。
我无法通过 ng-option 向我的控制器提交对象。如果我提交表单,Category
对象是未定义的。
有人能给我指出正确的方向吗?
项目控制器
// Create new Item
$scope.create = function() {
// Create new Item object
var item = new Items ({
name: this.name,
...
category: this.category,
});
创建项目视图
<section data-ng-controller="ItemsController">
<div class="page-header">
<h1>New Item</h1>
</div>
<div class="col-md-12">
<form class="form-horizontal" data-ng-submit="create()" novalidate>
<fieldset>
<div class="form-group">
<label class="control-label" for="name">Name</label>
<div class="controls">
<input type="text" data-ng-model="name" id="name" class="form-control" placeholder="Name" required>
</div>
</div>
...
</div>
<div class="form-group">
<label class="control-label" for="category">Category</label>
<div class="controls" data-ng-controller="CategoriesController" data-ng-init="find()">
<select data-ng-model="category" ng-options="cat.name for cat in categories"></select>
</div>
</div>
<div class="form-group">
<input type="submit" class="btn btn-default">
</div>
感谢 "aurav gupta" 我找到了解决方案 http://fdietz.github.io/recipes-with-angular-js/controllers/sharing-code-between-controllers-using-services.html
问题是因为您使用了两个不同的控制器
因此它们会有 不同的作用域。
因此 category 对象是为 CategoriesController 而不是为 ItemsController
定义的
您可以通过将 CategoriesController 的代码放在 ItemsController 中以创建单个控制器来解决此问题,或者您可以使用 angular 服务来绑定两个控制器的范围变量。