javascript - AngularJS 如何将 $watch 变量与 $http 一起使用?

标签 javascript angularjs

我正在尝试使用过滤器更改变量。看起来像这样。

<select ng-init="inputStatus='ALL'" ng-model="inputStatus">
  <option value="ALL">ALL</option>
  <option value="NEW">NEW</option>
  <option value="RENEW">RENEW</option>
  <option value="FINISHED">FINISHED</option>
  <option value="FAILED">FAILED</option>
</select>

正如您所看到的,每次我选择一个新选项时,变量都会发生变化。

这是我的 $watch 函数。

var testValue = '';

$scope.$watch('inputStatus', function(val) {

  if (val) {
   testValue = val;
  }
}, true);

console.log(testValue);

我需要在这里使用 testValue 来过滤数据。

$http.get("/api/v1/websites/?limit=" + $scope.main.limit + "&offset=" + $scope.main.offset + "&status=" + testValue)
then(function successCallback(result) {
    $scope.websites = result.data.results;
});

我怎样才能做到这一点?

最佳答案

使用 ng-change 而不是 $watch指令:

<select ng-init="inputStatus='ALL'" ng-model="inputStatus"
        ng-change="updateWebsite(inputStatus)">
  <option value="ALL">ALL</option>
  <option value="NEW">NEW</option>
  <option value="RENEW">RENEW</option>
  <option value="FINISHED">FINISHED</option>
  <option value="FAILED">FAILED</option>
</select>

在 Controller 中:

$scope.updateWebsites = updateWebsites;

function updateWebsites(status) {
    var url = "/api/v1/websites";
    var params = { limit: $scope.main.limit,
                   offset: $scope.main.offset,
                   status: status };

    var config = { params: params };

    $http.get(url, config)
      .then(function successHandler(response) {
         $scope.websites = response.data.results;
    }).catch(function errorHandler(response) {
         console.log("ERROR", response.status)
    });
}

关于javascript - AngularJS 如何将 $watch 变量与 $http 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48225008/

相关文章:

javascript - 如何在方案中执行 JavaScript 的 >>> ?

javascript - 如何让JavaScript从Django中的views.py中识别context_dict对象

angularjs - 正则表达式模式的词法分析器错误

javascript - 在 Angular.js 单元测试中,是否约定在 '$' 前面省略 'scope' 而不是 '$rootScope'(或其他注入(inject)服务)?

javascript - 按回车键时AngularJS表单不提交

javascript - ag-grid - 在 angular 1.x 中未定义 setRowData

javascript - Google Closure 编译器不压缩字符串值?

javascript - 语义 UI 和 Meteor JS : Validating Form Without Changing Page

javascript - 以行作为 ID 和值的表的复制按钮

javascript - Lodash _.filter 函数只能满足一个条件