使用jquery val更新$ scope

时间:2015-01-24 22:30:59

标签: javascript jquery angularjs

我目前正在开发一个jQuery应用程序并尝试逐步将其更改为angularJS。我不想改变所有现有的jQuery代码。 jQuery代码进行ajax调用并根据ajax结果更新变量。 我在角度范围内需要这个结果。 我试图创建一个隐藏的输入,或输入display none,并用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 trigger input等...

由于

1 个答案:

答案 0 :(得分:2)

正如其他人所说,这不是理想的。但是,只要保持代码模块化,它也不应该是一个太大的问题。尝试创建一个服务来管理你的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;
    });

  });