AngularJS 指令 - 如何在异步数据加载后刷新模板

标签 angularjs templates angularjs-directive refresh

我从 this question fork 并编辑了一个 plunker

我想做的是在数据加载后更新/填充 SELECT 元素(组合框),但有些事情不对劲。我检索数据,它位于 SELECT 元素的范围内,但模板未刷新以显示数据。有人可以have a look告诉我为什么模板不刷新?

非常感谢。

指令:

app.directive('walkmap', function() { 
  return {
    restrict: 'A',
    transclude: true,
    scope: { walks: '=walkmap' },
    template: '<select data-ng-options="w.postalCode for w in walks"></select>',
    link: function(scope, element, attrs)
    {
      scope.$watch('walks', function (walks) {
                scope.walks = walks;
                console.log('watch triggered');
                console.log(scope.walks);


            });

    }
  };
});

索引.html:

<body ng-controller="MainCtrl">
    <h1>The Walks Data:</h1>
    <div walkmap="store.walks"></div>
  </body>

最佳答案

解决方案:

这是一个plunker :

app.directive('walkmap', function() { 
  return {
    restrict: 'A',
    transclude: true,
    scope: { walks: '=walkmap' },
    template: '<select ng-model="selected" data-ng-options="w.postalCode for w in walks"></select>'
  };
});

关于AngularJS 指令 - 如何在异步数据加载后刷新模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21235302/

相关文章:

C# 模板和特殊构造函数

C++ 模板结构 'has no member named' 错误

c++ - 编译器是否管理使用模板元编程生成的重复类型

javascript - Angular-route1.6.1 无法正常工作

javascript - ng 值无法正常工作

拖动谷歌地图时 Android 6.0 崩溃

javascript - 不工作滚动缩放

javascript - 如何在 AngularJS 指令中重新渲染模板?

javascript - 如何修复括号与点符号 Angularjs

angularjs - Bootstrap popover 指令逻辑在 AngularJS 自定义指令中不起作用