Javascript 使用jquery val更新$scope
我目前正在开发一个jQuery应用程序,并试图逐步将其改为angularJS。我不想更改所有现有的jQuery代码。 jQuery代码进行ajax调用,并根据ajax结果更新变量。 我需要这个结果在我的角度范围内。 我试图创建一个隐藏的输入,或者使用display none创建输入,并使用jQuery$('#accountId').val(值)更新它:Javascript 使用jquery val更新$scope,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我目前正在开发一个jQuery应用程序,并试图逐步将其改为angularJS。我不想更改所有现有的jQuery代码。 jQuery代码进行ajax调用,并根据ajax结果更新变量。 我需要这个结果在我的角度范围内。 我试图创建一个隐藏的输入,或者使用display none创建输入,并使用jQuery$('#accountId').val(值)更新它: 但是我的$scope变量$scope.account.accountId没有得到更新 我还尝试了ng值、jquery触发器输入 谢谢正如其他
但是我的$scope变量$scope.account.accountId没有得到更新
我还尝试了ng值、jquery触发器输入
谢谢正如其他人所说,这并不理想。然而,只要代码保持模块化,问题就不会太大。尝试创建一个服务来管理jQueryAjax请求,然后将该服务作为依赖项注入控制器中 一个简单的示例可能如下所示:
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;
});
});
我认为这是个坏主意。看这里:由于角度的工作方式,这个概念实际上是倒退的。由于angular在document.ready之后管理DOM的方式,您不会慢慢地将angular集成到jQuery页面中而不会出现很多问题。将不得不使用大量的
$apply()
也应该使用角度形式验证和ng消息,而不是是的,这是真的。我已经开始用angularJS重写整个现有的jQuery代码,它更干净、更快。我想我会在这里为ajax部分做同样的事情。
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;
});
});