2015-06-09 2 views
0

У меня есть директива, которая принимает объект как параметр (атрибут). Я получаю данные в моей функции ссылок как строку. Есть ли способ получить данные как объект, сохраняющий @ в атрибуте и без использования eval или JSON.parse() в ссылке.Могу ли я отправить объект в изолированную область действия '@'

код Директива:

module.directive('example', function() { 
    return { 
     scope: { 
      object: '@' 
     } 
     link: function ($scope) { 
      console.log($scope.object); 
     } 
    } 
}); 

HTML код:

<example object="{{sampleObject}}"></example> 

код контроллера:

module.controller('exampleCtrl', function ($scope) { 
    $scope.sampleObject = { 
     name: 'name', 
     width: 100, 
     height: 100 
    }; 
}) 

ответ

0

Нет, вы не можете. Результат привязки «@» всегда является строкой, так как таким образом вы связываете значение атрибута DOM. См. documentation.

Если вы ищете способ избежать двусторонней привязки данных, используйте выражение «&».

Смежные вопросы