【问题标题】:How to get string subpath in AngularJS如何在AngularJS中获取字符串子路径
【发布时间】:2019-12-06 01:58:53
【问题描述】:

我从 db 加载了一些数据并附加到 html 中,如下所示:

<td>
  <p class="namepath" ng-bind-html="getNamePath(l)"></p>
</td>

我的控制器:

$scope.getNamePath = function (l) {
    let namepath = l.currpath;
    let t = namepath.split('/').map(function (text, i) {
        return '<span ng-click="changeNamePath(' + i + ',' + namepath + ')"' + i + '>' + text + '</span>';
    }).join('/');
    return t;
};

我的 l.currpath 有一些这样的数据:

l.currpath = a/b/c/d...

当你点击c我要回a/b/c时,点击b我要回a/b...

我该怎么做?

【问题讨论】:

    标签: javascript jquery angularjs


    【解决方案1】:

    我没有测试这个,但想法是使用 Array.indexOf 和 A​​rray.slice 和 Array.join 方法:

        let t = namepath.split('/');
        let i = t.indexOf(pathNameFromButtonClick);
        let finalNamePath = t.slice(0, i+1).join('/');
        return finalNamePath;
    

    【讨论】:

    • 如何获取 i from: let i = t.indexOf(pathNameFromButtonClick);?
    • 根据您的描述,您单击的按钮名称(您提到单击 b ...)所以,我希望您有代码来获取此 b 并将其传递给 indexOf
    • 怎么才能得到这个动作?我不知道如何从 angularjs 中的 onclick b 获取操作?现在我只能从所有文本 l.currpath 获取操作。
    【解决方案2】:

    ng-bind-html 指令不会编译 AngularJS 指令,例如 ng-click。而是使用类似的东西:

    <td>
      <p class="namepath">
         <span ng-repeat="namePath in l.currpath.split('/')"
               ng-click="changeNamePath($index, l.currpath)"
         >
           {{namePath}}<span ng-hide="$last">/</span>
         </span>
      </p>
    </td>
    

    【讨论】:

    • 我知道,但是 'a/b/c' 我从 db 加载,如何将 ng-click 附加到正文?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 2021-01-29
    • 1970-01-01
    相关资源
    最近更新 更多