簡體   English   中英

在視圖加載AngularJS后運行腳本

[英]Run script after view is loaded AngularJS

我是AngularJS的新人,我有這個問題;

我用我的控制器中的變量用html填充我的部分視圖:

<div ng-bind-html="deliberatelyTrustDangerousSnippet()"></div>

一切順利,直到我決定運行腳本。 顯示該腳本,但它不會運行。 我認為問題是視圖在加載頁面后填充了我的變量控制器,因此腳本不會運行。 我在我的控制器中使用變量來存儲腳本的原因是因為我必須從其他地方獲取腳本,並且它經常被更改。

這是運行我的腳本的可行方法嗎?

這是我的代碼示例:

視圖:

    <div ng-bind-html="deliberatelyTrustDangerousSnippet()"></div>

控制器:

    .controller('browseCtrl', function($scope,$sce) {

      $scope.video = '<div id="idxx1" style="width: 460px; height: 290px;" itemprop="video" itemscope itemtype="http://schema.org/VideoObject"></div><script>addeere3ejs("idxx1",  "172653", "24431581", "1_fq2w6oc2");</script>';

      $scope.deliberatelyTrustDangerousSnippet = function() {
      return $sce.trustAsHtml($scope.video);
    };
})

如果我的問題不清楚,我會嘗試更好地解釋它。

您可以在控制器中使用viewContentLoaded事件。

$scope.$on('$viewContentLoaded', function(){
 // Run after view loaded.
});

不確定ng-bind-html是否允許腳本像這樣運行。 您可能需要將其包裝在角形支架中以在裝載時自動運行。

 <div ng-bind-html="{{deliberatelyTrustDangerousSnippet()}}"></div>

我的工作是使用一個已知的變量來運行這樣的$ scope函數:

{{postBind(results)}}

然后在控制器中有一個方法來執行此操作

$scope.postBind = function (obj) {
        running_my_extenal_methods();
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM