我无法将ng-option的对象提交给我的控制器。如果我提交表单,则Category
对象未定义。
有人能指出我正确的方向吗?
上述ItemsController
// 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>
感谢&#34; aurav gupta&#34;我找到了解决方案http://fdietz.github.io/recipes-with-angular-js/controllers/sharing-code-between-controllers-using-services.html
答案 0 :(得分:1)
问题是因为您正在使用两个不同的控制器
所以他们会有不同的范围。
因此类别对象是为 CategoriesController 定义的,而不是为 ItemsController 而定义的
您可以通过将ItemsController的代码放在ItemsController中来制作单个控制器来解决这个问题,也可以使用角度服务来绑定两个控制器的范围变量。