AngularJS - jQuery - ui-sortable g.sortable 不是函数

问题描述 投票:0回答:3

我正在 ui-sortable 的帮助下创建一个带有可拖动行的表格

<tbody ui-sortable="sortableOptions" ng-model="model.list">
   <tr ng-repeat="item in model.list">
      <td>
          <div class="form-group">
              <input type="text" class="form-control test-input" ng-model="item.Country" ng-readonly="!isEditable">
          </div>
      </td>
      <td>
          <div class="form-group">
              <input type="text" class="form-control test-input" ng-model="item.Value" ng-readonly="!isEditable">
          </div>
      </td>
   </tr>

这是控制器中的代码。

$scope.sortableOptions = {
            update: function(e, ui) {

                console.log(model.list);
            },
            stop: function(e, ui) {

                console.log(model.list);
            }
        };

我已经使用了 require.js 并在那里添加了依赖项

ui.sortable

每当我打开包含此表的页面时,都会收到此错误 -

angular.js:12520 
TypeError: g.sortable is not a function
    at w (http://localhost:90/bower_components/angular-ui-sortable/sortable.min.js:8:4649)
    at x (http://localhost:90/bower_components/angular-ui-sortable/sortable.min.js:8:4721)
    at link (http://localhost:90/bower_components/angular-ui-sortable/sortable.min.js:8:5003)
    at http://localhost:90/bower_components/angular/angular.js:8835:44
    at invokeLinkFn (http://localhost:90/bower_components/angular/angular.js:8841:9)
    at nodeLinkFn (http://localhost:90/bower_components/angular/angular.js:8335:11)
    at compositeLinkFn (http://localhost:90/bower_components/angular/angular.js:7731:13)
    at nodeLinkFn (http://localhost:90/bower_components/angular/angular.js:8330:24)
    at compositeLinkFn (http://localhost:90/bower_components/angular/angular.js:7731:13)
    at compositeLinkFn (http://localhost:90/bower_components/angular/angular.js:7734:13) <tbody ui-sortable="sortableOptions" ng-model="model.list" class="ng-pristine ng-untouched ng-valid ng-isolate-scope">

你能帮我一下吗? 预先感谢

jquery angularjs requirejs jquery-ui-sortable
3个回答
7
投票

ui-sortable 依赖于 jQuery,jQuery UI 1.9+。检查 ui-sortable js 文件之前是否有这些依赖项,然后您应该将 ui.sortable 注入到正确的模块中

angular.module('myapp', ['ui.sortable']);


2
投票

任何面临同样问题但似乎一切都正确的人,例如;

1. jQuery is loaded.
2. angular-ui-sortable is being loaded correctly.
3. You've injected its dependency. 
   angular.module('myapp', ['ui.sortable']);
4. The code appears to be correct in the view

确保您已在

jquery-ui
之后和
jquery
js 文件之前包含
sortable
。我遇到了同样的问题,经过一段时间的头痛后,我发现了这个解决方案在这个线程中


0
投票
UI.Sortable 指令中的要求

AngularJS v1.2+

JQuery v3.1+
JQueryUI v1.12+

如果使用 jQuery v1.x 和 v2.x,则添加 UI.Sortable v0.14.x 版本

© www.soinside.com 2019 - 2024. All rights reserved.