Javascript angularjs控制器内的动态表
我对angularjs是新手。我正在使用angularjs控制器。在控制器内,我有以下功能Javascript angularjs控制器内的动态表,javascript,angularjs,Javascript,Angularjs,我对angularjs是新手。我正在使用angularjs控制器。在控制器内,我有以下功能 $scope.violation = function(argArray){ var message = ''; var violationLog = argArray; if(violationLog!= null && violationLog!='undefined') { var violati
$scope.violation = function(argArray){
var message = '';
var violationLog = argArray;
if(violationLog!= null && violationLog!='undefined')
{
var violationArray = new Array();
violationArray = violationLog.split("<br/>");
for (var i = 1; i < violationArray.length; i=i+2)
{
message += violationArray[i];
}
}
return message;
}
$scope.invalition=函数(argArray){
var消息=“”;
var violationLog=argArray;
如果(violationLog!=null&&violationLog!=“未定义”)
{
var violationArray=新数组();
violationArray=violationLog.split(
);
对于(变量i=1;i
我将“argArray”变量作为
argArray = "4<br/>Time in this state exceeded 2 minutes.<br/>3<br/>Time in this state exceeded 1 minutes.";
argArray=“4
此状态的时间超过2分钟。
3
此状态的时间超过1分钟。”;
在这里,我想将这两条消息排列在表中的'tr'标记中
像
帮帮我。这是你想要的吗
<table>
<tr ng-repeat="msg in model.messages">
<td>{{ msg }}</td>
</tr>
</table>
{{msg}}
我不喜欢你的“数组”是一个HTML字符串,但如果真的是这样的话,你最好将它拆分成一个实际的数组,并将其提供给你的中继器:
HTML
<div ng-app="myApp" ng-controller="dynamicTable">
<div ng-bind-html="violation(argArray)"></div>
</div>
棱角分明
var myApp = angular.module("myApp", []);
myApp.controller("dynamicTable", function($scope, $sce) {
$scope.argArray = "4<br/>Time in this state exceeded 2 minutes.<br/>3<br/>Time in this state exceeded 1 minutes.";
$scope.violation = function(argArray){
var message = '';
var html = "<table>";
var violationLog = argArray;
if(violationLog!= null && violationLog!='undefined')
{
var violationArray = new Array();
violationArray = violationLog.split("<br/>");
for (var i = 1; i < violationArray.length; i=i+2)
{
message += "<tr><td>";
message += violationArray[i];
message += "</td></tr>";
html += message;
}
}
html += "</table>";
return $sce.trustAsHtml(html);
}
});
var myApp=angular.module(“myApp”,[]);
控制器(“dynamicTable”,函数($scope,$sce){
$scope.argArray=“4
此状态的时间超过2分钟。
3
此状态的时间超过1分钟。”;
$scope.violation=函数(argArray){
var消息=“”;
var html=“”;
var violationLog=argArray;
如果(violationLog!=null&&violationLog!=“未定义”)
{
var violationArray=新数组();
violationArray=violationLog.split(
);
对于(变量i=1;i
在这里拉小提琴:
更新:此示例最初是使用中继器创建的表。OP希望在控制器内创建HTML,因此已对其进行了修改。在HTML中,您可以这样创建表
<table>
<tr ng-repeat="msg in messages">
<td>{{msg}}</td>
</tr>
</table>
{{msg}}
然后在控制器中,将消息推送到$scope.messages中
$scope.violation = function(argArray){
var violationLog = argArray;
if(violationLog!= null && violationLog!='undefined')
{
var violationArray = new Array();
violationArray = violationLog.split("<br/>");
for (var i = 1; i < violationArray.length; i=i+2)
{
$scope.messages.push(violationArray[i]);
}
}
}
$scope.invalition=函数(argArray){
var violationLog=argArray;
如果(violationLog!=null&&violationLog!=“未定义”)
{
var violationArray=新数组();
violationArray=violationLog.split(
);
对于(变量i=1;i
谢谢您的回复。在这里,我也得到了同样的问题。Secong消息正在附加到第一条消息。因此,我想在函数中使用tr,td标记分割消息。你能告诉我如何在函数中写table和tr,td标签吗?你能更新fiddle来显示问题吗?然后我确信我们能找到解决方案。我想要类似的东西:jsfiddle.net/5kjjsn3L/5如果这是你想要的,我已经在这里为你解决了:好。我已经用我们提出的解决方案更新了答案。如果符合您的要求,请将其标记为答案。谢谢回复。我想在函数中动态地添加table、tr、td标记。小提琴: