更新凉亭后错误工厂无法正常工作

Error Factory Not Function after update bower

我在 bower 中更新和删除插件后,我的应用出现此错误。

angular.js:14516 TypeError: starterFactory.loginRawUser(...).success is not a function
at ChildScope.$scope.loginRawuser (starterController.js:51)
at fn (eval at compile (angular.js:15351), <anonymous>:4:226)
at callback (angular.js:26969)
at ChildScope.$eval (angular.js:18172)
at ChildScope.$apply (angular.js:18272)
at HTMLButtonElement.<anonymous> (angular.js:26974)
at HTMLButtonElement.dispatch (jquery.js:5201)
at HTMLButtonElement.elemData.handle (jquery.js:5009)
(anonymous) @ angular.js:14516
(anonymous) @ angular.js:11004
$apply @ angular.js:18277
(anonymous) @ angular.js:26974
dispatch @ jquery.js:5201
elemData.handle @ jquery.js:5009

好像factory出错了,不过之前没问题,运行还好。

我想安装 angular-material 但是它有冲突所以我更新并删除了一些插件。

这里是更新前的bower.json。

{

  "name": "myapp",
  "version": "0.0.0",
  "dependencies": {
    "angular": "^1.4.0",
    "bootstrap": "^3.2.0",
    "angular-route": "^1.4.0",
    "angular-sanitize": "^1.4.0",
    "angular-touch": "^1.4.0",
    "angular-ui-router": "0.3.1",
    "oclazyload": "^1.0.9",
    "bootstrap-switch": "^3.3.2",
    "components-font-awesome": "^4.6.3",
    "simple-line-icons": "^2.3.2",
    "angular-password": "^1.0.3",
    "angular-md5": "^0.1.10",
    "angular-ui-notification": "^0.2.0",
    "angular-loading-bar": "^0.9.0",
    "ng-file-upload": "^12.2.9",
    "ng-img-crop": "ngImgCrop#^0.3.2",
    "angular-socket-io": "^0.7.0",
    "angular-smart-table": "^2.1.8",
    "smart-table-sticky-header": "st-sticky-header#^1.0.1",
    "angular-simple-logger": "^0.1.7",
    "ui-leaflet": "^2.0.0",
    "angu-complete": "^2.4.2",
    "fullcalendar": "^3.2.0",
    "jquery-ui": "^1.12.1"
  },
  "devDependencies": {
    "angular-mocks": "^1.4.0"
  },
  "appPath": "app",
  "moduleName": "Yeoman",
  "overrides": {
    "bootstrap": {
      "main": [
        "less/bootstrap.less",
        "dist/css/bootstrap.css",
        "dist/js/bootstrap.js"
      ]
    }
  }
}

这里 bower.json 更新后。

{
  "name": "myapp",
  "version": "0.0.0",
  "dependencies": {
    "angular": "^1.6.3",
    "bootstrap": "^3.3.7",
    "angular-touch": "^1.6.3",
    "angular-sanitize": "^1.6.3",
    "angular-ui-router": "ui-router#^0.4.2",
    "components-font-awesome": "^4.7.0",
    "simple-line-icons": "^2.4.1",
    "angular-password": "^1.0.3",
    "angular-md5": "^0.1.10",
    "angular-ui-notification": "^0.3.6",
    "angular-loading-bar": "^0.9.0",
    "ng-file-upload": "^12.2.13",
    "ng-img-crop": "^0.3.2",
    "angular-socket-io": "^0.7.0",
    "angular-smart-table": "^2.1.8",
    "angular-simple-logger": "^0.1.7",
    "angu-complete": "^2.4.2",
    "angular-material": "^1.1.3"
  },
  "devDependencies": {
    "angular-mocks": "^1.6.3"
  },
  "appPath": "app",
  "moduleName": "Yeoman",
  "overrides": {
    "bootstrap": {
      "main": [
        "less/bootstrap.less",
        "dist/css/bootstrap.css",
        "dist/js/bootstrap.js"
      ]
    }
  }
}

我没有备份所以我会尝试使用旧代码 bower.json 但是,凉亭说

bower                                 ECONFLICT Unable to find suitable version for angular

还有更多的 ECONFLICT 改造后的凉亭。

我尝试谷歌搜索但找不到解决方案,有没有人可以解决这个问题。? 谢谢

显示 .success 不是函数的错误

尝试改用 .then

Refrence

如果您有返回给控制器的承诺,则使用

starterFactory.loginRawUser(...).then(function (response) {
    //returned response
}, function (error) {
    //returned error
});

如果没有,您需要调用 $promise 对象的 then 方法:

starterFactory.loginRawUser(...).$promise.then(function (response) {
    //returned response
}, function (error) {
    //returned error
});

关于bower.json,您可以获得Angular 1.6.3,因为目前它是Angular 1 的最新版本,只需删除^:

"angular": "1.6.3"