无法将环聊按钮添加到脚本标记内的 HTML 模板

Unable to add Hangouts button to HTML template within script tags

在我的索引页面上,当我添加如下所示的环聊按钮时,它会按预期绘制和工作。

    <body ng-app="sampleApp" ng-controller="MainCtrl">
      <div class="row">
        <div class="col-md-12 m-body">
          <div class="m-header-text">
             Hello Friend
          </div>

          <g:hangout render="createhangout"></g:hangout>

          <div>
            <!-- Insert html view templates here -->
              <ui-view></ui-view>
          </div>
        </div>
      </div>
    <!-- So on -->
   </body>

但是当我把它放在一个基于 url 路线显示的模板中时,只有 Hangouts 按钮没有被绘制并且在 UI 中看不到。

  <script type="text/ng-template" id="/home.html">
      <div class="col-md-12 m-Grid m-rowBg m-border">
        <div ng-repeat="peers in lop">
                        Hey {{peer.username}}
          Call Peer <g:hangout render="createhangout"></g:hangout>
        </div>
      </div>
  </script>

请问为什么没有画出来 & 我应该怎么做才能显示按钮?会有很大帮助!

使用AngularJS。

尝试从 id="/home.html"

中删除 /

我通过使用 angular 控制器使用 javascript 而不是 html 标记来渲染来解决这个问题。尝试这样的事情:

<body ng-app="sampleApp" ng-controller="MainCtrl">
  <div class="row">
    <div class="col-md-12 m-body">
      <div class="m-header-text">
         Hello Friend
      </div>

      <div id="placeholder-div"></div>

      <div>
        <!-- Insert html view templates here -->
          <ui-view></ui-view>
      </div>
    </div>
  </div>
<!-- So on -->

在您的控制器中:

myApp.controller('MainCtrl', ['$scope', function($scope) {
    gapi.hangout.render('placeholder-div', { 'render': 'createhangout' });
}]);

我遇到了同样的问题,并找到了使用 Angular 指令的解决方案。

带有 Google 标签标记的问题呈现按钮是在 platform.js 脚本加载时执行呈现,这是在 Angular 加载模板之前。

所以一个解决方案是在Angular 加载模板后调用Google API 渲染函数。我用 link 函数创建了一个 Angular 自定义指令:

hangoutButton.directive('hangoutButton', function() {

  return {
    restrict: 'E',
    template: '<div id="hangout-button"></div>',
    link: function (scope, element, attrs) {
      gapi.hangout.render('hangout-button', {'render': 'createhangout'});
    }
  };
}); 

然后您可以使用自定义元素在模板中显示它:

<div class="col-md-12 m-Grid m-rowBg m-border">
  <div ng-repeat="peers in lop">
    Hey {{peer.username}}
    Call Peer <hangout-button></hangout-button>
  </div>
</div>