首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将ng-数据传递到范围

将ng-数据传递到范围
EN

Stack Overflow用户
提问于 2014-09-07 15:06:28
回答 3查看 152关注 0票数 1

我正在尝试用AngularJS创建一个实时搜索函数。我有一个输入字段:

代码语言:javascript
运行
复制
<input type="text" placeholder="Search" data-ng-model="title" class="search">

它可以在范围内传递搜索关键字,这样我就可以执行实时搜索(JS),并将结果直接显示给DOM。

代码语言:javascript
运行
复制
var app = angular.module("DB", []);

app.controller("Controller", function($scope, $http) {
  $scope.details = [],

  $http.defaults.headers.common["Accept"] = "application/json";
    $http.get('http://api.org/search?query=<need to pass search name here>&api_key=').

    success(function(data, status, headers, config) {

    }).
    error(function(data, status, headers, config) {
      //handle errors
  });
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-07 15:30:47

在角度控制器内部使用一个手表表达式。

代码语言:javascript
运行
复制
$scope.$watch('title', function (newValue, oldValue) {
  if(newValue != oldValue) {
    $http.get('http://api.org/search?query=' + newValue + '&api_key=')
         .success(function(data, status, headers, config) { /* Your Code */ })
         .error(function(data, status, headers, config) { /* Your Code */ });
  }
});
票数 1
EN

Stack Overflow用户

发布于 2014-09-07 15:14:03

代码语言:javascript
运行
复制
<input type="text" placeholder="Search" data-ng-model="title" class="search" data-ng-change="search()">

app.controller("Controller", function($scope, $http) {
  $scope.details = [],

  $scope.search= function() {
    var url = "http://api.org/search?query="+$scope.title+"&api_key=";
     $http.defaults.headers.common["Accept"] = "application/json";
     $http.get(url).

    success(function(data, status, headers, config) {

    }).
    error(function(data, status, headers, config) {
      //handle errors
  });
  };     
});
票数 0
EN

Stack Overflow用户

发布于 2014-09-07 15:43:43

你可以像贾斯汀约翰提议的那样使用手表,也可以在使用ng-change时使用ng-change,你的控制器应该如下所示

代码语言:javascript
运行
复制
app.controller("Controller", function($scope, $http) {

  $http.defaults.headers.common["Accept"] = "application/json"; //should be moved to run block of your app
  $scope.details = [];

  $scope.search= function() {
    $http.get("http://api.org/search?query="+$scope.title+"&api_key=")
       .success(function(data, status, headers, config) { .... })
       .error(function(data, status, headers, config) {//handle errors });
  }
});

和你的html

代码语言:javascript
运行
复制
<input type="text" placeholder="Search" data-ng-model="title" class="search" data-ng-change="search()">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25711642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档