AngularJS - 指令$将计算表达式解析到范围对象

时间:2015-06-01 21:03:49

标签: javascript angularjs angularjs-directive angularjs-scope

我正在使用@范围配置将字符串传递给我的isolated指令,希望能够将该字符串作为范围上的对象获取,然后可以为其分配值。

HTML

<div directive model="object.property.property"></div>

JS

directive('directive', function($parse) {
    scope: {
        model: '@' 
    },
    link: function (scope, elem, attrs) {
        var object = $parse(scope.model);
        object(scope);
        scope.object.property.property = 'newstring';
        // scope.object.property.property = 'newstring';
    }
});

我希望这会让object.property.property获得值newstring的范围$parse

我似乎没有正确使用$parse服务,但我发现的大多数示例都与使用<?php echo get_permalink() . '?order=time' ?> 转换JSON有关。如何使用parse将此字符串转换为指令范围内的对象?

谢谢!

1 个答案:

答案 0 :(得分:1)

这是你在找什么?

app.directive("mainDir", function($parse) {
  return {
     restrict: 'AE',
     scope: {
       model: '@'
     }
    template: '<div> hello: {{model}} </div>',
    link: function(scope, el, attrs) {
       el.on('click', function(evt) {
           evt.stopPropagation();
           evt.preventDefault();
           var object = $parse(attrs.model);
           scope.$apply(function() {
               object(scope);
           });
           object = 'new string';
           scope.model = object;
       })
  }
 }
})

用法:

<div main-dir model="object.property.property"></div>