AngularJS中文社区AngularJS 数组中元素属性变化怎么办

 我来答
匿名用户
2017-05-18
展开全部
你这个问题麻烦的地方是 Full Name 这个东西,它无法直接与一个变量绑定。需要手动定义“指令”解决。 另外你希望的 setter / getter 也不过是两个“指令”而已。简单实现如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>AngularJS</title> <script type="text/javascript" src="http://ajax。googleapis。com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript" src="http://ajax。googleapis。com/ajax/libs/angularjs/1.0.3/angular.min.js"></script> </head> <body> <div ng-controller="TestCtrl"> <ul> <li ng-repeat="name in names"> <input type="text" ng-model="name[0]" /> <input type="text" ng-model="name[1]" /> <input type="text" getter="get(name)" setter="set(name, $element)" /> </li> </ul> </div> <script type="text/javascript" charset="utf-8"> var app = angular.module('Demo', [], angular.noop); app.controller('TestCtrl', function($scope){ $scope.names = [ ['a', 'b'] , ['xx', 'xxx'] , ['xx', 'xxx'] , ['xx', 'xxx'] ]; $scope.get = function(name){ return name[0] + ' ' + name[1]; } $scope.set = function(name, $element){ var p = $element.val().split(' '); name[0] = p[0]; name[1] = p[1]; return; } }); app.directive('getter', function($parse){ var link = function($scope, $element, $attrs, $ctrl){ var func = $parse($attrs['getter']); $scope.$watch(function(){ $element.val(func($scope)); }); } return link; }); app.directive('setter', function($parse){ var link = function($scope, $element, $attrs, $ctrl){ var func = $parse($attrs['setter']); $element.on('change', function(eventObj){ func($scope, {$element: $element}); $scope.$digest(); }); } return link; }); angular.bootstrap(document, ['Demo']); </script> </body> </html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式