当前位置: 首页 > 面试题库 >

在AngularJS工厂中访问$ scope?

慕容灿
2023-03-14
问题内容

我是AngularJS的新手,觉得很有趣,但是对于以下情况我不太清楚。

app.factory('deleteFac', function($http){

var factory = {};

factory.edit = function(id){
  $http.get('?controller=store&action=getDetail&id=' + id).
    success(function(data, status){
        /** 
        got an error on the following 
        when i use return data; and i get data undefined 
        in the controller which i get it because its doing a ajax call
        you don't get data until the call first.
        **/
        $scope.detail = data;
      })
    }

return factory;
})

我分配$scope并使用返回数据时遇到错误,无论如何我可以将返回数据分配给$scope吗?


问题答案:

您通常不在$scope工厂,服务或提供商内部使用。通常,您将返回promise(由返回$http),然后在控制器(您确实有$scope)中处理promise

factory.edit = function(id){
    return $http.get('?controller=store&action=getDetail&id=' + id);
}

控制器功能:

$scope.edit = function(id) {

    deleteFac.edit(id).then(function(response) {
        $scope.something = response.model;
    });
}


 类似资料:
  • 问题内容: 因此,在普通的旧Angular中,您将像这样注入一个Factory: 现在使用Typescript,我试图这样使用: 使用Typescript在Angular中注入工厂的正确方法是什么? 问题答案: app.factory(’MyFactory’,Services.MyFactory)这不起作用,从不实例化。 真正。这是因为从未使用运算符调用作为第二个参数()传递的函数。如果要使用Ty

  • 问题内容: 我的工厂看起来像: 它吐出日志,但不更改路径。我该怎么做才能做到这一点? 问题答案: $ location 的文档说: 请注意,设置员不会立即更新window.location。而是$ location服务知道作用域的生命周期,并在作用域$ digest阶段将多个$ location突变合并为一个“ commit”到window.location对象。 因此,如果拒绝诺言对产生影响,那

  • 问题内容: AngularJS访问cookie的方式是什么?我看到过同时引用Cookie的服务和模块的信息,但没有示例。 有没有,或者没有AngularJS规范方法? 问题答案: 该答案已更新,以反映最新的稳定angularjs版本。一个重要的注意事项是周围有薄薄的包装纸。它们几乎相同,因为它们仅与会话cookie一起使用。虽然,这回答了原始问题,但是您可能还需要考虑其他解决方案,例如使用loca

  • 问题内容: 我一直在做很多工作,总的来说,我发现它是一个有趣而强大的框架。 我知道关于服务,工厂,提供者,价值的讨论很多,但是我对“什么是”仍然很困惑。 在其他StackOverflow讨论中,工厂定义如下: 工厂名称 语法:结果:在将factoryName声明为可注入的参数时,将为您提供通过调用传递给module.factory的函数引用而返回的值。 我发现很难理解这种解释,也并没有增加我对工厂

  • 问题内容: 我试图了解Angular中工厂和服务的概念。我在控制器下有以下代码 此代码可以正常工作。但是,当我将$ http服务移入工厂时,我无法将数据返回到控制器。 使用工厂有什么好处,因为$ http即使在控制器下也可以工作 问题答案: 将服务移出控制器的目的是实现关注点分离。服务的工作是知道如何与服务器通信,而控制器的工作是在视图数据和服务器数据之间转换。 但是,您会混淆异步处理程序以及返回

  • 问题内容: 编辑2016年1月: 由于这仍然引起注意。自问了这个之后,我已经完成了一些AngularJS项目,对于我最常使用的那些项目,建立了一个对象并最后返回了该对象。但是,我下面的说法仍然正确。 编辑: 我想我终于了解了两者之间的主要区别,并且我有一个代码示例来演示。我也认为这个问题与建议的重复问题有所不同。重复项说明该服务不可实例化,但是如果您按照我在下面的演示中进行设置,它实际上是可实例化