当前位置:  开发笔记 > 编程语言 > 正文

AngularJS:代码属于哪里,在解析承诺后更新表单字段?

如何解决《AngularJS:代码属于哪里,在解析承诺后更新表单字段?》经验,为你挑选了1个好方法。

在我的AngularJS应用程序中,我有一个包含a

控制器:

angular.module('myApp')
  .controller('MyController', MyController);

MyController.$inject = ['myRestApiResource'];

function MyController(myRestApiResource) {
  var vm = this;
  vm.save = function() {
    var params = [];
    var postData = {text: vm.text};
    myRestApiResource.save(params, postData)
      .then(function(res) { /* success handler */ })
      .catch(function(res) { /* error handler */ });
  };
}

当资源save()方法的$ promise被拒绝时,响应数据(在某些情况下)包含一个error.position属性,该属性引用检测到语法错误的字符串索引vm.text.

在这些情况下,我专注于

... 当promise被拒绝时,设置我的控制器中vm.selection具有startend属性的对象的值.

myRestApiResource.save(params, postData)
  .then(function(res) { /* success handler */ })
  .catch(function(res) {
    var error = res.data.error;
    if (error && error.position) {
      var start = error.position;
      var end = start + vm.text.substr(start).search(/(\W|$)/);
      vm.selection = {start: start, end: end};
    }
  });

小智.. 5

我建议你向textarea添加一个指令.

那么你可以设置$ promise被拒绝的位置

$scope.errorPosition = 50;

并在errorPosition - 指令中处理DOM操作.



1> 小智..:

我建议你向textarea添加一个指令.

那么你可以设置$ promise被拒绝的位置

$scope.errorPosition = 50;

并在errorPosition - 指令中处理DOM操作.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有