【问题标题】:Custom directive doesn't get updated inside cellTemplate of ui-grid自定义指令不会在 ui-grid 的 cellTemplate 内更新
【发布时间】:2017-06-28 18:28:18
【问题描述】:

我在ui-grid 的cellTemplate 中使用了一个名为flag 的自定义指令。该指令只接受一个国家名称(美国或加拿大),并显示其相应的标志。该指令在页面首次加载时工作正常。但是,稍后即使我将标志的值更改为任何值,自定义指令也不会更新并显示新标志。不知道我错过了什么。

Plnkr

【问题讨论】:

  • 请检查答案!

标签: angularjs angular-ui-grid ui-grid


【解决方案1】:

指令被编译一次!需要看属性或者设置双向绑定!

app.directive('flag', function() {
  var flags = {
    USA: 'https://github.com/hjnilsson/country-flags/raw/master/png100px/us.png',
    CANADA: 'https://github.com/hjnilsson/country-flags/raw/master/png100px/ca.png'
  };

  return {
      restrict: "A",
      scope: {
          flag: "@"
      },
      link: function(scope, elem, attrs) {
          scope.$watch('flag', function(newValue, oldValue){
              angular.element(elem).attr('src', flags[newValue]);
          });
      }
  };
});

工作 plunkr ==> http://plnkr.co/edit/dcHDMEY8MpQnCnm99aDd?p=preview

【讨论】:

  • ui-grid 这样做有什么原因吗?
  • 跟ui-grid没有关系。 Angular 指令就是这样工作的!无论如何,我在控制台中看到 ui-grid 存在问题:它尝试使用自定义应用方法更新范围,但它不存在!我会尝试更新的版本!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-04
  • 2016-01-28
  • 1970-01-01
相关资源
最近更新 更多