Я начинаю с углового. Пожалуйста, помогите мне исправить this plunkУгловая директива о дампинге с функцией привязки
Я пытаюсь использовать только один вызов обратно для onSelect обратного вызова JQuery UI Datepicker виджет, который находится в моем контроллере вместо того чтобы повторять функцию обратного вызова в каждой директивы (да у меня есть несколько директив для ради эксперимента).
Но я получаю эту ошибку
Uncaught TypeError: Cannot use 'in' operator to search for 'onSelect' in 19/10/2016
Вот мой код
HTML
<html ng-app="myApp">
<head>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.0/themes/smoothness/jquery-ui.css"/>
<script src="https://code.jquery.com/jquery-3.1.1.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js"></script>
<script src="script.js"></script>
</head>
<body ng-controller="myController">
<input type="text" my-datepicker ng-model="date" date="date" on-select="onSelect()"/>
<input type="button" ng-click="submitDate()" value="Submit"/>
</body>
</html>
JS
var app = angular.module('myApp', []);
app.controller('myController', ['$scope', function($scope){
$scope.date = "frommyController";
$scope.submitDate = function(){
console.log($scope.date);
};
$scope.onSelect = function(value, picker){
scope.date = value;
scope.$parent.$digest();
}
}]);
app.directive('myDatepicker', function(){
return {
scope: {
date: "=",
onSubmit: "&onSelect"
},
restrict: 'EA',
require: "ngModel",
link: function(scope, element, attributes, modelController){
scope.date = "fromdirevtive";
element.datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "dd/mm/yy",
onSelect: scope.onSubmit
});
}
}
})
может кто-то помочь мне понять, что не так я делаю здесь?
не нужно указывать мою работу. –
@chiragpatel благодарит за помощь в хираге. Я понял, что, поскольку этот обратный вызов предполагается вызывать из внешней среды, а не из-за углового. Это невозможно. –