2015-09-28 81 views
0

我有我试图让escaped_fragments利用平均值SEO(下盖,它使用phantomjs模拟浏览器)角NG绑定使用转义片段与均值SEO消失

我工作的角度web应用程序得到奇怪的行为,我无法解释。 非转义片段正常工作。 随着转义片段的一些内容立即消失。

我有一个对象,我正在从路由配置的解析部分中的mongo db读取,如此。

state('view-creator-test', { 
      url: '/view-creator-test/:creatorId', 
      templateUrl: 'modules/creators/views/view-creator-test.client.view.html', 
      resolve: { 
       creator: function($stateParams, Creators) { 
        return Creators.get({ 
         creatorId: $stateParams.creatorId 
        }).$promise; 
       } 
      }, 
      controller: function($scope, creator) { 
       $scope.resolveCreator = creator; 
      } 
     }). 

然后视图模板是

<section data-ng-controller="CreatorTestController" > 
     <!-- !CREATOR PROFILE --> 
    <section class="profile-header inverse"> 
    <div class="container"> 
     <!-- AVATAR --> 
     <div class="row"> 

     <!-- NAME/LOCATION --> 
     <div class="col-sm-8 col-sm-offset-1 col-xs-12 text-center-sm"> 
      <div class="row"> 
      <div class="col-sm-6 col-xs-12"> 
       <h2 class="name">{{creator.name}}</h2> 
       <h2 class="name" ng-bind="creator.name"></h2> 
      </div> 
       <h2 class="name">{{test}}</h2> 
       <h2 class="name" ng-bind="test"></h2> 

      </div> 
     </div> 
     </div> 
    </div> 
    </section> 
</section> 

则控制器是

'use strict'; 

angular.module('creators').controller('CreatorTestController', ['$scope', 
    function($scope) { 
     $scope.test = 'Leo was Here'; 
     $scope.creator = $scope.resolveCreator; 
    }]); 

其结果是,创建者名对填充于{{creator.name}},但没有填写ng-bind =“creator.name”。 '狮子座在这里'是填补了两个。

感谢

回答

0

而不是定义状态controller功能,然后就分配一个$scope内通过模板变量,你可以放置CreatorTestController路线里面,让你直接注入CreatorTestController函数内部的依赖性,删除ng-controller从模板

.state('view-creator-test', { 
     url: '/view-creator-test/:creatorId', 
     templateUrl: 'modules/creators/views/view-creator-test.client.view.html', 
     resolve: { 
      creator: function($stateParams, Creators) { 
       return Creators.get({ 
        creatorId: $stateParams.creatorId 
       }).$promise; 
      } 
     }, 
     controller: 'CreatorTestController' 
    }) 

控制器

'use strict'; 

angular.module('creators').controller('CreatorTestController', ['$scope', 'creator', //<-- injected resolve method here. 
    function($scope, creator) { 
     $scope.test = 'Leo was Here'; 
     $scope.creator = creator; 
}]); 
+0

这仍然有相同的错误ngBind是空的{{}}工作,但有趣的是,现在我得到了测试和创造者的问题,因为之前我只是与创造者得到错误。除了使用escaped_fragments时,这两项工作都是有效的 – Leo