2015-09-05 59 views
0

是否配置$routeProvider对某些URL模式Ajax响应,与控制器映射也开始加入div元素:

<!-- class="hidden" to keep element hidden till AngularJs is not ready --> 
<div ng-controller="IModalCtrl" class="hidden" ng-show="is_visible" ng-view> 
    <!-- AJAX RESPONSE VIEWER --> 
</div> 

在成功请求,响应内容被附加到目标<div>元素,但元素由于ng-show而不可见,所以它的模型值不变。

我不知道在哪里更改$scope.is_visible的值。

下面的工作:

var app = angular.module('home', ['ngRoute']); 
app.config(['$routeProvider', '$locationProvider', '$httpProvider', 
    function ($routeProvider, $locationProvider, $httpProvider) { 
    $locationProvider.html5Mode(true); 
    $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; 
    $routeProvider.when('/news/:cat/:slug/:id', { 
     templateUrl: function (attr) { 
      console.log(attr); 
      return '/news/' + attr.cat + '/' + attr.slug + '/' + attr.id + '?ajax=1' 
     }, 
     controller: 'IModalCtrl' 
    }).otherwise('/'); 
}]); 

app.controller('IModalCtrl', function($scope, $http, $route, $routeParams, $location) { 
    // Keep element hidden default 
    $scope.is_visible = false; 
}); 

回答

0

基本上你已经创建IModalCtrl控制器的两个实例,作为其中之一是ng-view股利和另外一个是在路由定义加载。我不这么认为你需要从路由定义中加载的控制器。

要解决您的问题,您不需要使用ng-show,您需要$scope.is_visible = true;控制器在从ajax获得成功后需要$scope.is_visible = true;

更新

在这种情况下,你可能需要使用的承诺,它会告诉控制器时加载的决心功能被完成了自己的诺言。

$routeProvider.when('/news/:cat/:slug/:id', { 
    templateUrl: function (attr) { 
     console.log(attr); 
     return '/news/' + attr.cat + '/' + attr.slug + '/' + attr.id + '?ajax=1' 
    }, 
    controller: 'IModalCtrl', 
    resolve: { 
     getData: function($http){ 
      //this will get called before controller get loaded 
      //and the include this promise inside the controller. 
      return $http.get('url'); 
     } 
    } 

}) 
+0

两个实例!!!我已经按照这个文档[https://docs.angularjs.org/api/ngRoute/service/$route](https://docs.angularjs.org/api/ngRoute/service/$route)。 这是我的问题是我在哪里把这个代码'$ scope.is_visible = true;'? – vinaykrsharma

+0

@vinaykrsharma你想通过声明'is_visible'标志来实现什么? –

+0

我想让div元素在Ajax响应附加后可见! – vinaykrsharma

相关问题