当前位置: 首页 > 面试题库 >

AngularJS和contentEditable两种方式的绑定无法正常工作

赫连宏伯
2023-03-14
问题内容

在下面的示例中,为什么初始呈现值{{ person.name }}不是David?您将如何解决?

这里的例子

HTML:

<body ng-controller="MyCtrl">
  <div contenteditable="true" ng-model="person.name">{{ person.name }}</div>
  <pre ng-bind="person.name"></pre>
</body>

JS:

app.controller('MyCtrl', function($scope) {
  $scope.person = {name: 'David'};
});

app.directive('contenteditable', function() {
  return {
    require: 'ngModel',
    link: function(scope, element, attrs, ctrl) {
      // view -> model
      element.bind('blur', function() {
        scope.$apply(function() {
          ctrl.$setViewValue(element.html());
        });
      });

      // model -> view
      ctrl.$render = function() {
        element.html(ctrl.$viewValue);
      };

      // load init value from DOM
      ctrl.$setViewValue(element.html());
    }
  };
});

问题答案:

问题是当插值尚未完成时,您正在更新视图值。

所以删除

// load init value from DOM
ctrl.$setViewValue(element.html());

或替换为

ctrl.$render();

将解决问题。



 类似资料:
  • 问题内容: 我可能在这里丢失了一些东西,但无法使此JSONP请求正常工作,这是代码: 该请求会触发,并且我收到以下格式的响应(带有标头Content-Type:application / json): 你看到什么错了吗?也许我应该从服务器返回的格式不对吗?Angular触发错误回调,除了我设置的错误消息外,没有任何错误消息(“错误”)。 问题答案: JSONP要求您将数据包装到JavaScript

  • 问题内容: 我在ubuntu 14.04.02上,已安装和更新了python,cython和numpy。我从http://github.com/itseez/opencv提取了最新的open cv来源,根据文档进行了编译…当尝试运行从https://github.com/shantnu/FaceDetect提取的python来源时/ 这给了我以下错误: modprobe:致命:找不到模块nvidi

  • 问题内容: 我刚刚开始从w3schools学习AngularJS 。我正在尝试练习教程中所提到的示例。一切正常,但是当我来到“ AngularJS Controllers”时,它在w3schools中无法正常运行,请尝试一下。我已将代码分叉到这个小提琴示例中。我的脚本如下所示: 尝试帮助我,并向我推荐一个很好的教程(或任何免费的pdf文件)。 问题答案: 这是你 纠正的小提琴 。 对于angula

  • 我是新来安格拉斯的。我试图通过$http post将一些数据发布到服务器。我的代码可以到达服务器,但数据无法传递。我使用golang作为后端。我在这里犯了什么错误? go代码: 输出:

  • 问题内容: 我正在尝试学习角度语言,并且我为单击简单按钮而苦苦挣扎。 我遵循了一个示例,该示例具有与以下示例相同的代码。 我正在寻找的结果是单击按钮会引起警报。但是,对按钮单击没有响应。有人有什么想法吗? 问题答案: 您需要将您的角度应用程序代码移到角度库中。在您的角度代码运行时,尚不存在。这是一个错误(请参见开发工具控制台)。 在这一行: 您正在尝试访问名为的变量。考虑什么导致该变量存在。那是在

  • 问题内容: 我不明白为什么使用此正则表达式该方法返回false; 我是一个字边界的字符! 问题答案: 在Java中,尝试将模式与 整个string 进行匹配。 这是真实的,和。 如果要检查字符串中是否有匹配项,可以使用。在这种情况下,它是Java字符串文字。 API链接 :尝试根据图案匹配整个区域。 什么意思 如此处所用,点是一个正则表达式元字符,表示(几乎)任何字符。是一个正则表达式元字符,表示