如何在angularJS中从控制器读取指令变量
我下载了一个angularJS模块,它为我提供了多日期选择器(由1个工厂和1个指令组成),我将它们集成到了我正在构建的模块中 即使在我的angular模块中添加了指令和工厂,它也可以正常工作 如何读取控制器中指令创建的数组如何在angularJS中从控制器读取指令变量,angularjs,angularjs-directive,angularjs-controller,Angularjs,Angularjs Directive,Angularjs Controller,我下载了一个angularJS模块,它为我提供了多日期选择器(由1个工厂和1个指令组成),我将它们集成到了我正在构建的模块中 即使在我的angular模块中添加了指令和工厂,它也可以正常工作 如何读取控制器中指令创建的数组scope.days 1个工厂、1个指令和1个控制器: 工厂 schedulerApp.factory('multipleDatePickerBroadcast', ['$rootScope', function ($rootScope) { var sharedSer
scope.days
1个工厂、1个指令和1个控制器:
工厂
schedulerApp.factory('multipleDatePickerBroadcast', ['$rootScope', function ($rootScope) {
var sharedService = {};
sharedService.calendarId = null;
sharedService.message = '';
sharedService.resetOrder = function (calendarId) {
this.message = 'reset';
this.calendarId = calendarId;
this.broadcastItem();
};
sharedService.broadcastItem = function () {
$rootScope.$broadcast('handleMultipleDatePickerBroadcast');
};
return sharedService;
}]);
指令
schedulerApp.directive('multipleDatePicker', ['$log', 'multipleDatePickerBroadcast', function ($log, multipleDatePickerBroadcast) {
"use strict";
return {
restrict: 'AE',
scope: {
...
days: "=",
...
},
link: function (scope) {
// Initialization of the variable needed in the controller
scope.days = scope.days || [];
// Function to assign some value to scope.days
scope.toggleDay = function (event, momentDate) {
...
scope.days.push(momentDate);
...
};
},
...
}]);
控制器
schedulerApp.controller('SchedulerCtrl', function($scope, $compile, $timeout, $http, $sce) {
$scope.dbinding = [];
});
感谢您的帮助。谢谢
HTML
<multiple-date-picker days="dbinding "/>
您可以尝试双向绑定并通过模板中的属性访问它
schedulerApp.directive('multipleDatePicker', ['$log', 'multipleDatePickerBroadcast', function ($log, multipleDatePickerBroadcast) {
"use strict";
return {
restrict: 'AE',
scope: {
...
days: "=",
...
},
我正在阅读,但是一旦在指令的范围中定义,我是否也应该在控制器中定义$scope.days=[];?另外,如何添加到模板中?只需将其作为模板使用,并且在链接之后,它应该可以在someVariable中访问您的作用域。控制器变量中的“天”和指令变量中的“someVariable”是其他方式。Days是指令的属性(您可以在directive controller中修改),您可以在控制器中使用某个变量来访问它。我已经修改了我的帖子,请查看。这样,当我在指令中更改或推送项目到天时,控制器端的数组永远不会得到更新……我做错了什么?