У меня есть текст, например: "Рам - 24 кг"
Этот текст поступает на основе некоторых вычислений. Эти вычисления я делаю в своем контроллере angularjs. Я хочу дать стиль для этого текста, например, "Рам" в ареальном шрифте, а "24 кг" - в красном цвете с новым римским шрифтом. Как я могу достичь этого, используя angularjs
В javascript мы можем использовать innerhtml. Но как я могу реализовать это в angularjs
вот мой пример кода
if(condition)
name = $scope.somevalue1
else if(condition)
name = $scope.somevalue2
else
name = $scope.somevalue3
$scope.resultname = name;
if(condition)
weight = $scope.weightvalue1
else if(condition)
weight = $scope.somevalue2
else
weight = $scope.somevalue3
$scope.resultname = $scope.resultname+" is"+ weight;
if(condition)
mess= $scope.messvalue1
else if(condition)
mess = $scope.messvalue2
else
mess = $scope.messvalue3
$scope.resultname = $scope.resultname+" "+ mess
HTML
<span id="output"></span>
<section ng-app="myApp">
<article ng-controller="MyCtrl">
<p ng-bind-html="resultname"></p>
</article>
</section>
контроллер
angular.module('controllers', []);
angular.module('myApp', ['controllers','ngSanitize']);
angular.module('controllers').controller('MyCtrl', function ($scope){
$scope.resultname= 'Ram is <span class="myStyle">24</span>kg'
});
CSS
.myStyle{
color:red
}
Вам понадобится файл ngSanatize js
Я бы использовал более интенсивные возможности Angular tempting - полностью избавил ваш HTML от ваших JS файлов. Я просто использовал контроллер для этого примера, но если это фрагмент HTML, который вы собираетесь повторно использовать, он принадлежит директиве/компоненту (в зависимости от того, какую версию Angular вы используете).
angular.module('demo', [])
.controller('demoCtrl', ['$scope', function($scope) {
$scope.name = 'Ram';
$scope.weight = '24';
$scope.mess = 'kg';
}
]);
body {
font-family: Arial, sans-serif;
}
.weight {
font-family: 'Times New Roman', serif;
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<main data-ng-app="demo">
<div data-ng-controller="demoCtrl">
<p>{{::name}} is <span class="weight">{{::weight}} {{::mess}}</span>
</p>
</div>
</main>
Вы должны добавить элемент ng-style в html.
С помощью этой директивы вы можете установить стиль с вашего контроллера.
Код выглядит так:
<h2 ng-style="myStyle"/>
И в вашем контроллере вы установили
$scope.myStyle = "{'background-color':'blue'}"
Более подробную информацию вы можете найти в угловом документе.