javascript - Angularjs 将变量传递给具有继承(非隔离)范围的指令

标签 javascript angularjs

如果我使用的是独立作用域,我可以通过属性传递变量。

<my-directive baz='foo.bar'>

然后,在指令的 Javascript 上

.directive('myDirective', function() {
  return {
    scope: {
      'baz': '='
    }
  }
});

有什么方法可以对继承范围做类似的事情吗?链接函数只是传递字符串。

现在我正在自己解析变量并将其与 scope.$parent 匹配。似乎应该有一个辅助函数或更简单的方法来做到这一点。

最佳答案

使用$eval$parse:

<my-directive baz='foo.bar'>

.directive('myDirective', function($parse) {
  return {
    scope: true,
    link: function(scope, element, attrs) {
        console.log(scope.$eval(attrs.baz));
        var model = $parse(attrs.baz);
        console.log(model(scope));
        // if you want to modify the value, use the model, not $eval:
        model.assign(scope, "new value");
    }
  }
});

关于javascript - Angularjs 将变量传递给具有继承(非隔离)范围的指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18496175/

相关文章:

javascript - jQuery Mobile - 直接加载 URL,然后通过哈希加载相同的 URL 会在 DOM 中生成新的数据角色 ="page"div

angularjs - 无法解析折线图中的颜色(angular-chart.js)

javascript - AngularJS Select元素设置选中索引

javascript - AngularJS - 如何停止重新渲染模板?

javascript - extjs 3.4 在 from 字段中添加工具提示

javascript - 在 Chrome 中静默打印

javascript - 使用 sqlite 将 sequelize.js 连接到 node-webkit 桌面应用程序

javascript - Angular.js linq.js 过滤器无法正常工作的地方

javascript - 当目标流发出错误事件时,我们能否以某种方式重用源流?

javascript - 为什么这段带有正则表达式的 JavaScript 代码不能按我的预期工作?