2016-12-27 59 views
1

我有一個字符串,如var message = "you are moving to {{output.number}}";如何將字符串轉換爲角度綁定?

我想要把它放到div元素。我嘗試使用$("#message").html(message);

但它只是爲我打印整個字符串。我想讓output.number打印它的值。是否有可能實現我想要的?

我正在使用angular.js 1.5。

+1

我不明白....請發佈一個可驗證的例子。如果你使用AngularJS,你爲什麼使用Jquery ...? – Alexis

+0

Angular 1.X或2.X? – olivarra1

+0

你可以使用'angular.element',你必須用'$ compile'綁定'$ scope'和你的dom元素[看到這個答案](http://stackoverflow.com/questions/20651578/how-to- angularjs-controller-to-dynamic-html- –

回答

1

使用$插值服務,如:。

var message = $interpolate("you are moving to {{number}}")(output) 
// or 
var message = $interpolate("you are moving to {{output.number}}")($scope) 
+0

哇這是我發現的最佳解決方案。非常感謝! –

+0

不是問題:)玩得開心! – Melzar

0

你幾乎有隻是嘗試:

$scope.output.number = '123'; 
var message = "you are moving to" + output.number; 
$("#message").html(message); 

不要把變量中 「」 引號。

1

我希望你正在尋找這樣的東西。你可以通過在控制器內使用scope變量來完成。

<!DOCTYPE html> 
 
<html> 
 
<script src="http://ajax.googleapis.bootcss.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 

 
<body> 
 

 
    <div ng-app="myApp" ng-controller="myCtrl"> 
 
     <input type="number" ng-model="output.number" /> 
 
     <button ng-click="AppendItem()">Append</button> 
 
     <div id="message"></div> 
 
    </div> 
 

 
    <script> 
 
     var app = angular.module('myApp', []); 
 
     app.controller('myCtrl', function ($scope) { 
 
      $scope.output = {}; 
 
      $scope.AppendItem = function() { 
 
       var string = "Your Number is " + $scope.output.number; 
 
       $("#message").html(string); 
 
      } 
 
     }); 
 
    </script> 
 

 
</body> 
 

 
</html>

0

當我們將一個字符串變量追加到另一個字符串變量,那麼我們就需要使用附加操作符即「 +「。這是一個例子。

var output.number = 10; 
var message = "you are moving to " + output.number; 
$("#message").html(message); 
0

你可以這樣做使用$compile

$compile(angular.element(document.querySelectorAll('#message')[0]).html("you are moving to {{output.number}}"))($scope); 

添加$compile作爲控制器的依賴。

一切順利。

+0

這也行得通。但我喜歡$ interpolat爲我的問題 –

+0

好吧。祝一切順利。 – SaiUnique

0

你可以試試這個:

<html ng-app="app"> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width"> 
    <title>JS Bin</title> 
</head> 
<body ng-controller="appCtrl"> 
    <p id="message"></p> 
    <script src="https://code.jquery.com/jquery-1.9.1.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"> </script> 

</body> 

JS:

不應該寫內部控制DOM操作代碼,但可以得到的想法如何做到這一點。

var app = angular.module('app', []); 
app.controller('appCtrl', function($scope, $interpolate){ 
    var msg = "you are moving to {{number}}"; 
    $scope.number = 10; 
    $('#message').html($interpolate(msg)($scope)); 
});