2013-09-12 4 views
0

У меня есть список в контроллереA - controllerA также имеет функцию, которая определяет, был ли импортирован элемент в этом списке. Я хотел бы передать это логическое значение в каждую из перечисленных директив объектов (поэтому controllerB - контроллер для каждого из объектов - может видеть, был ли импортирован его объект), но он не работает, как я надеялся.Передача результата функции директиве

У меня есть следующие (упрощенно) в моем HTML:

<tbody> 
    <tr objectpane object="object" objectIsImported="objectIsImported(object)"></tr> 
</tbody> 

objectIsImported предполагается прохождение булево до objectPane экземпляра.

Эта точка зрения в паре с нг-контроллера (controllerA), который имеет следующую функцию, определенную:

$scope.objectIsImported = function(object) { 
    alert("never gets hit"); 
}; 

objectpane директива следующим образом:

aoo.directive('objectpane', ['$log', function ($log) { 
return { 
    restrict: 'A', 
    templateUrl: '/App/objectmanager/objectpane.html', 
    scope: { 
     object: "=", 
     objectIsImported: "=" 
    }, 
    controller: 'ObjectPaneController' 
}; 
}]); 

В ObjectPaneController (ControllerB) Я это :

$scope.alreadyImported = $scope.objectIsImported; // from scope in directive 

Проблема в том, что $ scope.objectIsImported от controllerA не получает удар, никогда. Что я делаю не так? Все остальное работает между контроллерами/директивой, просто передача этой функции в директиву, похоже, не работает.

+0

Это работает, если вы изменяете атрибут html на 'object-is-imported' (дефисы вместо прописных букв)? – Martin

+0

@ Мартин ничего себе, да. Угловой урок: узнал. Не стесняйтесь ответить на этот вопрос, и я отмечу его принятым :) Спасибо! – RobVious

ответ

1

Атрибут objectIsImported следует изменить на нижний регистр с дефисами: object-is-imported.

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