javascript - 利用controllerAs 为何没有输出

查看:67
本文介绍了javascript - 利用controllerAs 为何没有输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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输出

<div ng-app="myApp">
    <div ng-controller="MyCtrl as ctrl" ng-bind="ctrl.hellos"></div>
</div>

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

解决方案

低级错误……

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

这篇关于javascript - 利用controllerAs 为何没有输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆