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にかなり慣れていないので、これがばかげた質問である場合は事前にお詫び申し上げます。

ありがとう!

編集:ここに私のコントローラーがあります:

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でqueryparamsを使用し、オートコンプリートによって変数が変更されたときにそれらを更新するだけです。

4

0 に答える 0