harika bir örnek burada angularjs docs var: her
http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController
çok iyi yorumladı ve sen doğru yöne almalısınız.
Basit bir örnek, belki daha fazla bu yüzden aradığınızı aşağıdaki gibidir:
http://jsfiddle.net/mb98y/
HTML
<div ng-app="myDirective" ng-controller="x">
<input type="text" ng-model="test" my-directive>
</div>
JavaScript
angular.module('myDirective', [])
.directive('myDirective', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
scope.$watch(attrs.ngModel, function (v) {
console.log('value changed, new value is: ' + v);
});
}
};
});
function x($scope) {
$scope.test = 'value here';
}
Düzenleme Aynı şey , gerektirmez ire ngModel
(http://jsfiddle.net/mb98y/1/):
JavaScript: Bu bir ebeveyn olarak bir giriş öğesi olmalıdır yana
angular.module('myDirective', [])
.directive('myDirective', function() {
return {
restrict: 'A',
scope: {
myDirective: '='
},
link: function (scope, element, attrs) {
// set the initial value of the textbox
element.val(scope.myDirective);
element.data('old-value', scope.myDirective);
// detect outside changes and update our input
scope.$watch('myDirective', function (val) {
element.val(scope.myDirective);
});
// on blur, update the value in scope
element.bind('propertychange keyup paste', function (blurEvent) {
if (element.data('old-value') != element.val()) {
console.log('value changed, new value is: ' + element.val());
scope.$apply(function() {
scope.myDirective = element.val();
element.data('old-value', element.val());
});
}
});
}
};
});
function x($scope) {
$scope.test = 'value here';
}
Bu işe yarayabilir. Model gerektirmeden nasıl yapılacağı hakkında bir fikrin var mı? Sadece yönergeyi eklemek istiyorum. –
Yönergenin 'ngModel' olarak işlev görmesini istiyorsanız, burada gösterilen iki yönlü ciltleme ile izolat kapsamını kullanabilirsiniz: http://jsfiddle.net/langdonx/djtQR/ – Langdon
Yönergeyi zaten kullanıyorum, Korkarım, ama büyük öneri. –