如何将JQuery代码转换为Angular
如何将JQuery代码转换为Angular
我已经为此挣扎了很久,但似乎找不到一个相对简单的解决办法。我希望用户点击一个按钮,然后这个按钮将把选择的项目放入一个对象中。
以下是可以实现这一目标的jQuery代码:
$("#addUserGroup").click(function () {
var selectedValues = [];
$("#UserGroups :selected").each(function () {
selectedValues.push($(this).val());
});
alert(selectedValues);
});
我想实现相同的功能,但将对象放在我的Angular控制器中可以访问。如果有人能指点我正确的方向,我将非常感激。
编辑:
下面的答案解决了问题,但这是我稍微修改的代码,以处理选择多个项目的情况(如果您的选择框允许):
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.values = [];
$scope.selectedValue = "foo";
$scope.addValue = function () {
$scope.values.push($scope.selectedValue);
console.log($scope.values);
for (i = 0; i < $scope.values.length; i++) {
console.log($scope.values[i]);
}
//做任何操作以处理选项列表的值
//重置values数组,以便下一次点击时为空
$scope.values = [];
}
});
问题的出现原因:原来的代码是使用jQuery编写的,而现在想要将其改成使用Angular编写。
解决方法:根据原来的jQuery代码,重新编写了使用Angular的代码。主要的变化是使用了ng-model指令来绑定选择框的值,使用ng-click指令来绑定按钮的点击事件。在Angular的控制器中,定义了一个values数组和selectedValue变量,并且定义了一个addValue函数,用于将selectedValue的值添加到values数组中。在HTML中,使用ng-controller指令来绑定控制器,使用ng-model指令来绑定选择框的值,使用ng-click指令来绑定按钮的点击事件。
以下是改写后的代码:
JS
app.controller('MainCtrl', function($scope) { $scope.values = []; $scope.selectedValue = "foo"; $scope.addValue = function () { $scope.values.push($scope.selectedValue); console.log($scope.values); } });
HTML
<body ng-controller="MainCtrl"> <select ng-model="selectedValue"> <option>foo</option> <option>bar</option> <option>foobar</option> </select> <button ng-click="addValue()">Add</button>
希望这能帮到你。
http://plnkr.co/edit/afOIDxki62Tuz9csNz4O?p=info
这个回答有帮助吗?还有其他需要的功能吗?
是的,非常感谢!我只是稍微修改了一下,使其能够接受多个选项,我在我的编辑中展示了这个功能。
太棒了,感谢你更新原始问题。这对于遇到相同问题并偶然发现这个页面的其他人非常有帮助。