【问题标题】:Javascript ngModel: No value accessor for ''Javascript ngModel:''没有值访问器
【发布时间】:2016-03-20 07:24:21
【问题描述】:

我在一个带有 [(ngModel)] 的简单 Angular 2 入门示例中使用纯 javascript 而不是 TypeScript,如下所示。它给了我例外:'' 没有值访问器。

<!doctype html>
<html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.11/angular2-polyfills.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.11/Rx.umd.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.11/angular2-all.umd.min.js"></script>
<script>
(function(app) {
  app.AppComponent = ng.core.Component({
    selector: 'my-div',
    template: '<h1>Hello {{obj.a}}</h1>' + 
      '<div><input type="text" [(ngModel)]="obj.a"/></div>',
  }).Class({
    constructor: function() {
      this.obj = {a: "World"};
    }
  });
})(window.app || (window.app={}));

(function(app) {
  document.addEventListener('DOMContentLoaded', function() {
    ng.platform.browser.bootstrap(app.AppComponent);
  });
})(window.app || (window.app={}));
</script>
<body>
<my-div></my-div>
</body>
</html>

错误是由 2.0.0-beta.1 到 2.0.0-beta.11 产生的。如果我使用原来的 2.0.0-beta.0,上面的代码运行没有错误。

我认为这是 Angular 2 最新版本的一个错误。我希望我错了,但任何功能更改都不应该破坏在 2.0.0-beta.0 中工作的东西。

这里是plnkr:https://plnkr.co/edit/CqSeXeBpXgfgJUvBQ4mP?p=preview

【问题讨论】:

  • 那么为什么它适用于 2.0.0-beta.0 呢?证明给我看。你有 plnkr。
  • 如前所述,我不了解 JS。我找到了其他例子,在 JS 中似乎没有必要。
  • @real 不要使用压缩包。自 beta.1 以来,缩小已被破坏。如果您将angular2-all.umd.min.js 更改为angular2-all.umd.dev.js 工作正常。
  • 谢谢埃里克。这样就解决了。
  • 不客气。请记住,尽管必须在某个时候解决缩小问题,但很长一段时间以来都不是优先事项,并且可能会继续这样下去。

标签: angular


【解决方案1】:

按照 Eric Martinez 的说法,我只需要使用 angular2-all.umd.dev.js 而不是 angular2-all.umd.min.js。

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.11/angular2-all.umd.dev.js"></script>

不过那个 1.0MB 的文件...

【讨论】:

    猜你喜欢
    • 2016-04-02
    • 2016-11-04
    • 2017-04-25
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多