AngularJS内联编辑没有POST来纠正URL ...即不发送项目ID ...? ...

时间:2014-03-24 17:01:42

标签: angularjs post inline editing

我在AngularJS中有一个控制器,只有这个代码:

app.controller('PublishersController', function($scope, scaffold) {
    scaffold($scope, {model: "Publishers"});
});

用这样的代码查看:

  <tbody ng-repeat="publisher in items">
    <tr ng-show="!ui.isEditing($index)">
      <td>{{ publisher.name }}</td>
      <td>
        <ul>
          <li ng-repeat="email in publisher.emails">{{ email }}</li>
        </ul>
      </td>
      <td>
        <a ng-click="ui.edit($index)">&#9998;</a> |
        <a ng-click="ui.remove($index)">&#x2718;</a>
      </td>
    </tr>
    <tr ng-show="ui.isEditing($index)" ng-class="{error: publisher.$errors}">
      <td>
        <input type="text" ng-model="publisher.name" placeholder="Name" />
        <ul ng-show="publisher.$errors" class="error">
          <li ng-repeat="name in publisher.$errors.name">{{ name }}</li>
        </ul>
      </td>
      <td>
        <textarea type="text" ng-model="publisher.emails" placeholder="Emails" ng-list /></textarea><br/>
        <i>(use `,` as separator)</i>
        <ul ng-show="publisher.$errors" class="error">
          <li ng-repeat="email in publisher.$errors.emails">{{ email }}</li>
        </ul>
      </td>
      <td>
        <a ng-click="ui.edit()" title="Save">&#x2611;</a> |
        <a ng-click="ui.edit(false)" title="Cancel">&#x2612;</a>
      </td>
    </tr>
  </tbody>

一切正常 - 我有列表和内联编辑。

所以 - 我修改了代码并制作了另一页 - 价格。所以,我得到了列表和内联编辑功能。

问题在于,当我按下“编辑”按钮并在之后我提交 - POST转到“/ prices”URL而不是“/ prices / {price_id}”。与出版商的情况一样。

那么......我做错了什么? ...(我找不到任何地方定义或设置此URL或其他...)

1 个答案:

答案 0 :(得分:0)

在转储和测试日志之后,我发现了问题。

=== 1 ===

因此,对于Angular中的模型,该项目使用库angular-model.js,其中定义了一个模块:

angular.module('ur.model', ...

之后 - 我们有一个使用该模型的脚手架模块。它位于angular-scaffold.js,我们有:

var module = angular.module('ur.scaffold', ['ng', 'ur.model']);

module.factory('scaffold', ['model', ... 

我的前端控制器使用这个脚手架模块。

=== 2 ===

有一个服务器端代码,它返回该项的JSON,并在model模块中使用此JSON。此JSON必须具有此项的URL的属性,包括项ID。此URL用于查看项目或编辑项目 - 具体取决于您向其发送GET或POST请求的天气。

正如您所猜测的那样 - 服务器端没有在项目的JSON中返回此item-URL属性。当我这样做时 - 问题就解决了。