Ух, я застрял в одном из этих угловых привязок (без каламбура), где я не могу заставить моего контроллера поговорить с моей директивой.Как передать шаблон шаблона директивы для контроллера/родительского объекта
Моя директива заключается в следующем, отборное выпадающий с шаблоном:
app.directive('month', function() {
return {
replace:true,
scope:{
months:"=",
monthChoice:"="
},
template:'<select ng-model="monthChoice" ng-options=\"currMonth for currMonth in months\" class=\"monthsClass\"></select>',
link: function (scope, element, attrs) {
var lastEntry = scope.months.length - 1;
scope.monthChoice = scope.months[lastEntry];
scope.$watch('monthChoice', function() {
console.log(scope.monthChoice);
});
}
}
})
В months
значения, которые населяют выберите приходят из службы, которая обменивается данными с контроллером:
app.controller('CandListCtrl', ['$scope', 'Months',
function ($scope, Months) {
$scope.months = Months.init();
$scope.$watch('monthChoice', function() {
console.log($scope.monthChoice);
});
$scope.whichMonth = function(m) {
console.log(m);
console.log($scope.month);
return true
}
}]);
Что Я хотел бы иметь возможность передать значение модели monthChoice
контроллеру при возникновении изменения. Таким образом, я могу получить к нему доступ из других элементов html в моем частичном представлении. Мой частичный вид устанавливается следующим образом:
<month months="months" ng-change="whichMonth(monthChoice)"></month><br>
Он находится внутри частичный, который направляется с использованием типичного $ routeProvider:
app.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/', {
templateUrl: 'partials/cand-list.html',
controller: 'CandListCtrl'
}).
otherwise({
redirectTo: '/'
});
}]);
я бросаю следующее сообщение об ошибке: Expression 'undefined' used with directive 'month' is non-assignable!
И Я не могу получить доступ к значению с контроллера.
Почему вы избежать двойные кавычки в шаблоне директивы? – Phil
Я думал, что это был просто путь. Я удалил; все еще застрял. –
Есть ли смысл в вашей директиве? Кажется, он мало что делает, и то, что он делает, похоже, больше подходит для контроллера (т. Е. По умолчанию выбирает последний вариант). – Phil