gpt4 book ai didi

javascript - 当更改模型的属性时,如何为 AngularJS 创建 on-change 指令?

转载 作者:行者123 更新时间:2023-12-02 18:24:30 35 4
gpt4 key购买 nike

我试图找到以下问题的解决方案:

How to create on-change directive for AngularJS?

我已经发现,答案中的 jsFiddle 可以工作......但前提是该属性直接附加到 $scope。事实上如果我

1) 将 $scope.strText 更改为 $scope.model.strText2)并将属性值从strText更改为model.strText

不再起作用。

这里是 HTML 代码:

<div ng-controller="MyCtrl">
<input on-change="model.strText"/>
<input on-change="model.strText"/>
<p>{{model.strText}}</p>
</div>

这是 JS 代码:

var app=angular.module('myApp', []);

app.directive('onChange', function() {
return {
restrict: 'A',
scope:{'onChange':'=' },
link: function(scope, elm, attrs) {
scope.$watch('onChange', function(nVal) { elm.val(nVal); });
elm.bind('blur', function() {
var currentValue = elm.val();
if( scope.onChange !== currentValue ) {
scope.$apply(function() {
scope.onChange = currentValue;
});
}
});
}
};
});

app.controller('MyCtrl', function($scope) {
$scope.model.strText = "Hello";
});

这里是 jsFiddle

http://jsfiddle.net/pmcalabrese/XbJVb/

提前谢谢您。

最佳答案

您的数据源存在一些缺陷,因为 $scope.model 未定义。将其更改为

app.controller('MyCtrl', function ($scope) {
$scope.model = {};
$scope.model.strText = "Hello";
});

关于javascript - 当更改模型的属性时,如何为 AngularJS 创建 on-change 指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18519336/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com