Angularjs 角度运行ng,如果优先级高于ng重复

Angularjs 角度运行ng,如果优先级高于ng重复,angularjs,Angularjs,我有一个带有ng if的模板,它检查某个东西是否是数组,并有一个内部ng repeat在其上循环,然后重新应用相同的模板。否则,如果它是字符串,则只打印值 不幸的是,似乎ng if 600的优先级低于ng repeat 1000,因此即使使用字符串,ng repeat也只是一遍又一遍地调用模板,我猜是字符串的每个字母,并挂起浏览器 关于如何使ng if以更高的优先级运行,有什么想法吗?或者其他什么好方法来完成这个 指示 模板 编辑:我使用来自的代码解决了这个问题。我真的不明白,但我很高兴它能工作

我有一个带有ng if的模板,它检查某个东西是否是数组,并有一个内部ng repeat在其上循环,然后重新应用相同的模板。否则,如果它是字符串,则只打印值

不幸的是,似乎ng if 600的优先级低于ng repeat 1000,因此即使使用字符串,ng repeat也只是一遍又一遍地调用模板,我猜是字符串的每个字母,并挂起浏览器

关于如何使ng if以更高的优先级运行,有什么想法吗?或者其他什么好方法来完成这个

指示

模板


编辑:我使用来自的代码解决了这个问题。我真的不明白,但我很高兴它能工作。

考虑到您的ng if&ng重复在不同的元素/跨度上,这不是问题的重点。问题是ng if失败..请登录isArr函数中的console.log。。然后检查输入是什么,主要是arrayOfString,问题是你收到的JSON,我猜…失败是什么意思?我在isArr中尝试了console.log,但在打印任何内容之前浏览器会挂起,这就是为什么我认为这是一个优先问题哦,是的,所以我删除了重复,然后执行了console.log,它的计算结果正确为false,那么为什么浏览器会挂起?不能说为什么浏览器挂起:,所以你理解了真正的问题,对吗?
app.directive('cell', function ()
{
    return {
        restrict: "AE",
        scope: {
            cellData: '=cellData'
        },
        link: function (scope, element, attrs)
        {
            scope.isString = function (str)
            {
                return angular.isString(str);
            };
            scope.isArr = function (arr)
            {
                return !angular.isString(arr) && angular.isArray(arr);
            };
        },
        transclude: true,
        templateUrl: function (elem, attrs)
        {
            return "/template/cellData";
        }
    }
span(ng-if='isArr(cellData)')
    | [
    span(ng-repeat='inner in cellData')
        cell(cellData='inner')
        span(ng-if='!$last') ,&nbsp
    | ]
span(ng-if='!isArr(cellData)')
    span(ng-bind="isString(cellData) ? '\"'+cellData+'\"' : cellData")