javascript - 如何将 ng-model/$scope 与 Angular Factory 和 Controller 一起使用

标签 javascript angularjs http scope factory

// SERVICES
app.factory('searchFactory', ['$http', function($http) {
    return $http.post("/api", { tag: "food" });
}]);

// CONTROLLERS
app.controller('MainController', ['$scope', 'searchFactory', function ($scope, searchFactory) {
    $scope.submit = function () {
      searchFactory.then(function(response) {
        $scope.recipeData = JSON.parse(response.data);
      });
    };

// HTML
    <form ng-submit="submit()">
      <div class="form-group">
        <input type="text" ng-model="recipeTag" class="form-control" />
        <input type="submit" class="btn btn-primary" value="Find Recipes" />
      </div>
    </form>

有谁知道如何使用 ng-model 中的 $scope.recipeTag 来替换工厂中的“food”?我需要能够将表​​单输入作为参数传递到工厂中。

最佳答案

您需要创建一个需要工厂中参数的函数。示例:

            var factory= {
                post: function(customTag) {
                    return $http.post("/api", { tag: customTag });
                }
            };
            return factory;

关于javascript - 如何将 ng-model/$scope 与 Angular Factory 和 Controller 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33726848/

相关文章:

http - Cache-Control s-maxage header 是否会覆盖浏览器缓存的 Expires header ?

javascript - 单击 `img` 源时文本选择不清除

javascript - ReactJS 将列动态附加到图像库中的行中

javascript - AngularJs + ui.bootstrap.Modal 无法正常工作?

java - Java 的最佳 HTTP 库?

http - 如何使用 net/http 在服务器中获取服务器自己的地址?

javascript - 通过 JS 重新填充后调整 jQuery 内容 "drawer"的大小

javascript replace() 没有替换所有匹配的字符

javascript - Angular 基本路由问题

angularjs - 在 Angular 中,$document.find ('body' ).eq(0) 与 $document[0].body