0

Все,Angularjs директивы, два способа связывания не связывает

Мои понять из angularjs, когда речь идет о директивах в том, что, когда у вас есть изолят настройка области видимости, как так:

scope: { 
    dataSource: '=' 
} 

, что внутри ссылки функция: function(scope, ele, attr)

scope будет иметь dataSource свойство, которое привязывается к name на мой контроллер, если использовать так:

<my-element data-source='name'></my-element>

Однако это не так, то вот пример:

http://jsfiddle.net/HB7LU/21879/

Благодаря

Стив

ответ

5

Изменить название области видимости собственности dataSource в source. Потому что data зарезервировано.

var myApp = angular.module('myApp', []); 

//myApp.directive('myDirective', function() {}); 
//myApp.factory('myService', function() {}); 

myApp.controller('MyCtrl', function($scope) { 
    $scope.name = 'Batman'; 
}) 

.directive('myElement', function() { 
    return { 
    template: '<div>Hello {{source}}</div>', 
    replace: true, 
    restrict: 'E', 
    scope: { 
      source: '=' 
    }, 
    link: function(scope, ele, attr) { 
      console.log(scope.source); 
    } 
    } 

}) 

Code Fiddle

+0

г! спасибо, эти маленькие gotcha's. Я не знал, что данные были зарезервированы. Является ли это javascript или угловатой? –

+0

еще одна вещь 'rescrict: 'E'', изменить на 'ограничение': P – Yerken

+0

@Yerken did :)) –