2014-01-07 56 views
2

我需要將一個動態參數傳遞給一個applet。綁定applet參數與angularJS

這是我的控制器:

'use strict'; 

    angular.module('jworkApp') 
     .controller('AppletCtrl',['$scope', function (scope) { 
       scope.base64 = "abcd"; 
}]); 

這是我的看法,參數Base64是在控制器中定義爲「ABCD」

<p>{{base64}}</p> 
<APPLET> 
    <PARAM name="text" value={{base64}} /> 
</APPLET> 

當我跑我的網頁我在p看標記字符串'abcd',但applet param的值只是「{{base64}}」。

我該如何解決它?

+0

這將是有益的,如果你告訴我們你的代碼的其餘部分。 – Rasteril

+0

確定我添加了視圖的控制器 – fabuloso

+0

我在那裏看到一些問題...請參閱下面我的工作解決方案。 – Rasteril

回答

6

我解決了傳遞整個applet聲明。這樣它就能正常工作。

控制器:

angular.module('jworkApp') 
    .controller('AppletCtrl',['$scope', '$sce', function ($scope, $sce) { 

      $scope.b64 = 'AAAA'; 
      $scope.applet = 
       "<APPLET>"+ 
       "<PARAM name=\"testo\" VALUE=\""+$scope.b64+"\" />"+ 
       "</APPLET>"; 

      $scope.getAppletCode = function() { 
        return $sce.trustAsHtml($scope.applet); 
      }; 

    }]); 

觀點:

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

的工作的例子可能是:

<!doctype html> 
<html ng-app = "app"> 
<head> 
    <script src = "angular.min.js"> </script> 
</head> 

<div ng-controller = "Ctrl"> 
    <p>{{base64}}</p> 
    <APPLET> 
     <PARAM id = "applet"name="{{base64}}" value="{{base64}}" /> 
    </APPLET> 

    <div id = "debug"> 

    </div> 
</div> 

<script> 
    var app = angular.module('app', []); 
    app.controller('Ctrl', ['$scope', function($scope) { 
     $scope.base64 = "base-sixty-four"; 
    }]); 


    //Code to prove, that indeed, the value is what you're looking for  
    var applet = document.getElementById('applet'); 
    document.getElementById('debug').innerHTML = applet.value; 
</script> 
</html> 

有一點要注意:因爲你不能看到網頁上的變化,以查看結果的方式是通過某種開發工具,如Chrome開發工具,因爲在頁面加載完成後,該值已被角度更改。這意味着,只需查看源代碼就不會顯示期望的結果。