javascript - 利用controllerAs 为何没有输出
PHPz
PHPz 2017-04-11 11:10:52
[JavaScript讨论组]

RT
目标是模拟异步请求利用服务,将hellos输出

var myApp = angular.module('myApp', []);
        myApp.controller('MyCtrl',['helloWorld',MyCtrl]);
        myApp.provider('helloWorld', function() {
            var _name = 'Default';

            this.$get = function($q) {
                return {
                    sayHello: function() {
                        var deferred  = $q.defer()
                        setTimeout(function() {
                            if (_name !== 'Default') {
                                deferred.resolve('Hello, ' + _name + '!');
                            } else {
                                deferred.reject('No changes');
                            }
                        }, 3000);
                        return deferred.promise;
                    }
                }
            };
            this.setName = function(newName) {
                _name = newName;
            }
        });

        myApp.config(function(helloWorldProvider){
            helloWorldProvider.setName('World');
        });

        function MyCtrl(helloWorld) {
            helloWorld.sayHello().then(function(text){
                this.hellos = text
            },function(msg){
                this.hellos = msg
            })
        }

此时将hellos输出

控制台没有报错,视图也不显示,请问是什么原因?

PHPz
PHPz

学习是最好的投资!

全部回复(2)
伊谢尔伦

低级错误……

function MyCtrl(helloWorld) {
    var self = this
            helloWorld.sayHello().then(function(text){
                self.hellos = text
            },function(msg){
                self.hellos = msg
            })
        }
怪我咯

很久没写ng了,很多东西都忘了,不知道对不对。
vm通过$scope

...
myApp.controller('MyCtrl',['$scope', 'helloWorld',MyCtrl]);
...
function MyCtrl($scope, helloWorld) {
  ...
  $scope.hellos = 
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号