javascript - 如何从回调函数中设置元素属性

标签 javascript polymer

我有一个“service”元素,我想使用函数 getTree 设置属性“bookmarks”,该函数需要一个回调函数。

我的问题是,我不知道如何从“this”未定义的回调函数中访问该属性!!

<dom-module id="...">
    <style>
    :host {
      display: none;
    }
    </style>
  <script>
    Polymer({
      is: "bookmark-service",
      properties: {
        bookmarks: {
          type: Array,          
          value: function() { return [{title:"init"}]; } 
        }
      },
  created: function() {
     chrome.bookmarks.getTree(
        function(bookmarkTreeNodes) {
            this.bookmarks = bookmarkTreeNodes;
            console.log(this.localName + '#' + this.id + ' in getTree.');
         } ); 
    console.log(this.localName + '#' + this.id + ' was created');
    console.log("Bookmark: " + this.bookmarks[0].title + '.'); 
 },
...

最佳答案

您可以在调用 getTree 之前保存 this 的引用:

var that = this;
chrome.bookmarks.getTree(function(bookmarkTreeNodes) {
  that.bookmarks = bookmarkTreeNodes;
  console.log(that.localName + '#' + that.id + ' in getTree.');
});

关于javascript - 如何从回调函数中设置元素属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31950613/

相关文章:

javascript - FullCalendar React 中的 React Bootstrap Popover

javascript - 使用 setTimeout() 检查 JSON 文件中的更改

polymer 1 嵌套 dom-if 在 dom-repeat 中不会在数据更改时更新

javascript - 如何使用 polymer 将 HTML 注入(inject)模板

javascript - Pagedown 和尖括号不配合

javascript - 将事件集中在 ie 11 和 win 7 上

javascript - 改变 Canvas 元素的颜色

dart - Dart 'SdkAnalysisContext'未加载

polymer - 构造失败 'HTMLElement'

angularjs - 将 Polymer 或 Web Components 模板链接/编译到 Angularjs Scope