$ http

时间:2016-03-29 03:27:43

标签: angularjs http scope

  

编辑:我正在使用bootstrap,我认为bootstrap选项卡正在导致   问题

在$ scope variable update之后,

View不会更新。

  

$ scope.codeData

如果我控制$ scope.codeData,我可以看到数据,但不会在视图中呈现。

我必须单击两次才能正确显示视图。

我的代码有什么问题吗?

谢谢。

配置

angular.module('SPAroutes', ['ngRoute', 'SPAcontrollers',  'SPAdirectives'])

.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
    $routeProvider
    .when('/admin', {
        templateUrl: 'templates/views/admin.html',
        controller: 'adminCtrl',
        controllerAs: 'admin'
    })
    $locationProvider.html5Mode(true).hashPrefix('!');
}]);

Controller.js

angular.module('SPAcontrollers', ['ngRoute', 'SPAfactories',   'SPAdirectives']).controller('adminCtrl', ['$scope', '$http', '$location', '$window', '$SPAaccount', function ($scope, $http, $location, $window,  $SPAaccount) {
    this.dataRetrive = function(category){
        $http.get('/ctrls/get/blockCode/header').then(function (res){
            $scope.codeData = res.data;
            console.log($scope.codeData);
            $('#headerTab').tab('show');
        }, function (err){
            console.log(err);
        })
    };
}]);

admin.html     

{{codeData}}

1 个答案:

答案 0 :(得分:1)

你正在混淆控制器AS和范围为phil comment中提到的phil。而不是在这里使用范围存储this内的值,引用这样的内容。

angular.module('SPAcontrollers', ['ngRoute', 'SPAfactories',   'SPAdirectives']).controller('adminCtrl', ['$scope', '$http', '$location', '$window', '$SPAaccount', function ($scope, $http, $location, $window,  $SPAaccount) {
    var admin = this;
    this.dataRetrive = function(category){
        $http.get('/ctrls/get/blockCode/header').then(function (res){
            admin.codeData = res.data;
            console.log(admin.codeData);
            $('#headerTab').tab('show');
        }, function (err){
            console.log(err);
        })
    };
}]);

并在视图中: admin.html

{{admin.codeData}}

here正在为您的推荐工作