无法访问指令内对象的属性

时间:2015-06-26 13:19:45

标签: angularjs

当用户点击我的应用程序中的按钮时,我尝试编译这样的指令并发送单击指令的文档(复杂的json对象)

$scope.displayBlah = function(event, document){

  $scope.doc = document; 
  $(event.currentTarget.parentElement).prepend($compile('<show-blah mydata={{doc}}/>')($scope));

}

在指令代码中,我想访问该对象的各个属性,但我只能显示整个对象,而无法使用点表示法来获取属性。例如,这显示了整个复杂对象

{{mydata}} 

但我不能得到像这样的任何个人财产

{{mydata.property}}

这就是我的工作

myApp.directive('showBlah', function(){
return {
            restrict: 'AE', 
            scope: {
                mydata: '@'
                 }
            replace: true, 
            template: <div class='root'>{{mydata}} {{mydata.property}}</div>,
            link: ///code ommitted

问题:是否可以在这样的指令中访问对象内的属性?

 {{mydata.property}}

1 个答案:

答案 0 :(得分:1)

您在此使用@会将传入的值转换为字符串:

        scope: {
            mydata: '@'
             }

这解释了为什么{{mydata}}有效(只显示一个字符串),但{{mydata.property}}没有(字符串不具有property)。

使用=代替(并在指令调用中省略{{ }})。

相关问题