相关疑难解决方法(0)

为什么不赞成AngularJS $ http成功/错误方法?从v1.6中删除了?

AngularJS文档有关于$http successerror方法的弃用通知.这个抽象是从库中删除的具体原因吗?

angularjs angularjs-http angularjs-1.6

56
推荐指数
1
解决办法
4万
查看次数

AngularJS服务未定义:未知提供者:$ scopeProvider < - $ scope

我已经开始学习Angular JS了,我在向控制器中注入服务时遇到了问题.我正在尝试将ThreadFactory服务放入ThreadController,但是在调用它时我收到了一个未定义的错误.任何建议都会很棒.我得到的错误是:

未知提供者:$ scopeProvider < - $ scope < - ThreadService

app.js

angular.module('threadsApp', ['ngRoute']);
angular.module('threadsApp')
    .config(function ($routeProvider, $locationProvider) {
        $routeProvider
            .when('/', {
                templateUrl: 'views/index.html',
            })
            .when('/selected/:topicName', {
                templateUrl: 'views/threads.html',
                controller: 'ThreadController',
            })
            .otherwise({
                redirectTo: "/"
            });
            $locationProvider.html5Mode(true);
    });
Run Code Online (Sandbox Code Playgroud)

ThreadController.js

angular.module('threadsApp').controller("ThreadController",
    ["$scope", "$route", "$routeParams", "ThreadService", function ($scope, $route, $routeParams, ThreadService) {
    $scope.test = "Hello!";
    $scope.test2 = ThreadService.get();
}]);
Run Code Online (Sandbox Code Playgroud)

ThreadService.js

angular.module('threadsApp').service("ThreadService", ["$scope", function ($scope) {
    return {
        get: function() {
            return "Hello";
        }
    }
}]);
Run Code Online (Sandbox Code Playgroud)

进口顺序

    <script src="bower_components/jquery/dist/jquery.js"></script> …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

12
推荐指数
1
解决办法
2万
查看次数

为什么回应来自承诺`.then`方法反模式

我在StackOverflow上看到了人们建议为AngularJS服务提供回调函数的答案.

app.controller('tokenCtrl', function($scope, tokenService) {
    tokenService.getTokens(function callbackFn(tokens) {
        $scope.tokens = tokens;
    });
});

app.factory('tokenService', function($http) {
    var getTokens = function(callbackFn) {
        $http.get('/api/tokens').then (function onFulfilled(response) {
            callbackFn(response.data);
        });
    };

    return {
        getTokens: getTokens
    };
});
Run Code Online (Sandbox Code Playgroud)

在我看来,这似乎是一种反模式.该$http服务返回的承诺和具有.then方法执行回调函数感觉就像控制的不健康的反转.

如何重新编写这样的代码,以及如何解释为什么原始方式不是一个好主意?

javascript anti-patterns angularjs angular-promise

6
推荐指数
2
解决办法
437
查看次数

无法在控制器中注入服务

当服务和控制器在一个文件中时(通常情况下app.js),我已经完成了这项工作,并且它没有任何问题.

现在,我将控制器和服务组织在不同的文件和相应的文件夹中.我需要在控制器中注入1个特定服务,但我遇到了错误.

这是一个我正在处理的简单角度应用,可以管理您最喜欢的YouTube视频.我在add页面上收到错误.只需单击"添加"按钮即可查看错误.

等效的Plunker

这是我到目前为止:

的index.html

<!doctype html>
<html ng-app="youtube-favorites">
    <head>
        <title>My YouTube Favorites</title>
        <link rel="stylesheet" type="text/css" href="bower_components/bootstrap/dist/css/bootstrap.min.css" />
        <link rel="stylesheet" type="text/css" href="css/custom.css" />
    </head>
    <body>
        <div class="container">
            <div class="row">
                <div class="col-md-12" style="border: 1px solid red;">
                    <div ui-view></div>
                </div>
            </div>
        </div>
        <script src="bower_components/angular/angular.js"></script>
        <script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
        <script src="bower_components/angular-ui-router/release/angular-ui-router.min.js"></script>
        <script src="app.js"></script>
        <script src="services/add.js"></script>
        <script src="controllers/home.js"></script>
        <script src="controllers/add.js"></script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

app.js

angular.module('youtube-favorites', ['ui.bootstrap', 'ui.router'])
    .config(['$stateProvider', '$urlRouterProvider',
        function($stateProvider, $urlRouterProvider) {

            // For any unmatched url, redirect to /home
            $urlRouterProvider.otherwise('/home');

            // …
Run Code Online (Sandbox Code Playgroud)

angularjs

1
推荐指数
1
解决办法
1452
查看次数

将$ scope用于服务

我对以下代码的期望是它会绑定$ scope.as.但没有任何显示,控制台中没有显示错误

var testModule = angular.module('testmodule', [])
.controller('ctrl', function ($scope, mser) {
  mser.aa();
 })
.service('mser', function($scope /* Would $scope be here */) {
  this.aa = function(){
  $scope.as = "hello mars"
 }});
Run Code Online (Sandbox Code Playgroud)

javascript angularjs ionic-framework

0
推荐指数
1
解决办法
1740
查看次数