1

我正在使用一个外部自动完成函数,它返回一个对象(不是文本输入中的内容),我想以角度使用这个对象。现在我正在使用 rootScope 来做到这一点:

function change(field, value) {
  var appElement = document.querySelector('[ng-app=app]');
  var $scope = angular.element(appElement).scope();
    $scope.$apply(function() {
      if (field) {
        $scope.partner = value;
      }
      else {
        $scope.keyword = value;
      }
    });

};

这很好用,但我想知道是否有一种更简洁的方法可以从外部与 angular 交互(如 set 函数)。我对角度很陌生,所以如果这是一个愚蠢的问题,我提前道歉。

谢谢!

编辑:这是我的控制器:

app.controller('mainController', function($rootScope, $routeParams, $location) {
    $rootScope.partner = {}
    $rootScope.partner.id = $routeParams.id;
    $rootScope.partner.name = $routeParams.name;
    $rootScope.keyword = $routeParams.keyword;
    updateFields($rootScope.partner.name, $rootScope.keyword);
    $rootScope.$watch('[partner,keyword]', function () { 
        $location.search('name', $rootScope.partner.name);
        $location.search('id', $rootScope.partner.id);
        $location.search('keyword', $rootScope.keyword);
     }, true);
});

目前它没有做太多,只是使用 url 中的查询参数并在自动完成更改变量时更新它们

4

0 回答 0