2016-09-30 29 views
1

说我有一个控制器hmmCtrl以下行范围变量:角度如何让HTML瑞德纳作为一个字符串

$rootScope.value = 1; 
$scope.hmm = "{{$root.value}}" 

而在HTML中,如果我有:

<section ng-controller="hmmCtrl"> 
{{hmm}} 
</section> 

目前,它显示:

{{$root.value}} 

,但其实我是想看看$ root.value的价值:

1 

从长远来看,我打算把$ root.value放到一个json文件中,该文件将由hmmCtrl解析。

我该如何做到这一点?

+0

从快速查看我t似乎你有一个错误,它应该是$ scope.hmm = $ rootScope.value不是root – ZabedAkbar

回答

1

所以你可以做的是,你可以写一个控制器,该控制器可以返回你的插值表情评估值

代码中

//inject `$interpolate` inside controller function before using it. 
$scope.evaluateValue = function(expr){ 
    return $interpolate(expr)($scope); 
} 

标记

<section ng-controller="hmmCtrl"> 
    {{evaluateValue(hmm)}} 
</section> 

其他方式

<section ng-controller="hmmCtrl" ng-bind="evaluateValue(hmm)"> 
</section> 

Demo Here

+0

hmm,这将打印出evaluateValue(hmm)给我 - 我把$ scope.eveluateValue放在hmmCtrl里面。 – jamesdeath123

+0

你试过更新了吗? –

+0

嗯,作为值更新的作品现在可以显示,但控制台给出了错误:错误:f未定义 h @ http:// localhost:81/js/angular_core/angular.min.v.1.4.5。 js:94:218 $ [email protected]:// localhost:81/js/controllers/menu_controllers.js:11:11 其中menu_controllers.js:11是 的行返回$ interpolate(expr)( $范围); 有什么想法? – jamesdeath123

0

<section ng-controller="hmmCtrl"> 
    {{hmm}} 
</section> 

从$ rootScope更改HTML代码传送到

<section ng-controller="hmmCtrl"> 
    {{value}} 
</section> 

$范围inherites,这意味着$范围也有 “价值” - 可变...

+0

虽然你的回答是正确的,$ scope继承自$ rootScope并且它也有“value”,但它并没有解决解析“{{$ root.value} }“或”{{$ scope.value}}“正确,这是我试图问的真正问题。 – jamesdeath123

+0

哦,是的,我不知道$ root从哪里来,并误解为$ rootScope。我的坏^^ – Argee

相关问题