我目前正在开发一个 jQuery 应用程序,并试图逐渐将其更改为 angularJS。我不想更改所有现有的 jQuery 代码。 jQuery 代码进行 ajax 调用并根据 ajax 结果更新变量。 我需要在我的 Angular 范围内得到这个结果。 我试图创建一个隐藏的输入,或不显示输入并使用 jQuery $('#accountId').val(value) 更新它:
<input type="text" ng-model="account.accountId" style="display:none" id="accountId" name="accountId">
但是我的 $scope 变量 $scope.account.accountId 没有更新。
我还尝试了 ng-value、jquery 触发器输入...
谢谢
最佳答案
正如其他人所说,这并不理想。但是,只要您保持代码模块化,它也不应该是一个太大的问题。尝试创建一个服务来管理您的 jQuery ajax 请求,然后将该服务作为依赖项注入(inject)到您的 Controller 中。
一个简单的例子可能是这样的:
angular.module('app', [])
// jQuery managed ajax service
.service('AccountSvc', function() {
var BASE_URL = '/accounts';
this.getAccount = function(id) {
// I'm assuming this returns a promise
// haven't worked with jQuery for a while
return $.get(BASE_URL + '/' + id);
};
})
.controller('AccountsCtrl', function($scope, AccountSvc) {
AccountSvc.get(123).then(function(account) {
$scope.account = account;
});
});
关于javascript - 使用 jquery val 更新 $scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28131003/