Javascript 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

我对angularjs是新手。我正在使用angularjs控制器。在控制器内,我有以下功能

$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标记。小提琴: