使用 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 服务来绑定两个控制器的范围变量。