首页 > 解决方案 > 无法使用 Angular.js 更改标签的 href 值

问题描述

我在a使用 Angular.ja 动态设置标签值时面临一个问题ui-router。我在下面提供我的代码。

<a ui-sref="{{mastUrl}}" ng-show="isMaster">Master Info</a>
$scope.mastUrl='app.ownerinfo.owner.vew';
var url='../service/admin/login/checkmenu.php';
    var method='GET';
    var data='';
    DataService.connectToServerSideScript(method,url,data)
    .then(function(response) {
        console.log('menu',response);
        if (response.length > 0) {
            angular.forEach(response,function(obj){
                if (obj.user_type==2) {
                    $scope.isUser=false;

                    if (obj.isMast==0) {
                        $scope.isMaster=false;
                    }else{
                        $scope.isMaster=true;
                        if (obj.mastUrl !='') {
                            $scope.mastUrl=obj.mastUrl;
                        }
                    }
                }
            })
        }
    },function(error) {

    })

这里我有默认值app.ownerinfo.owner.vewfor$scope.mastUrl但在服务内部我需要动态设置它。根据我当前的示例,它的值app.ownerinfo.owner.new在服务成功响应中。但是生成的a标签输出 HTML 如下所示。

<a ui-sref="app.ownerinfo.owner.new" ng-show="isMaster"
   href="#!/ownerinfo/owner/view">Master Info</a>

我的路由代码如下。

.state('app.ownerinfo',{
        url:'/ownerinfo',
        templateUrl:'view/ownerinfo.html',
        controller:'ownerinfoController'
    })
    .state('app.ownerinfo.owner',{
        url:'/owner',
        templateUrl:'view/owner.html',
        controller:'ownerController'
    })
    .state('app.ownerinfo.owner.vew',{
        url:'/view',
        templateUrl:'view/ownerview.html',
        controller:'ownerviewController'
    })
    .state('app.ownerinfo.owner.new',{
        url:'/new',
        templateUrl:'view/newowner.html',
        controller:'newownerController'
    })

这里ui-serf的值按预期设置,但href值与默认值相同。我需要将两个值设置为相同。

标签: angularjsangular-ui-routerhref

解决方案


您可以使用ui-state指令,它允许动态链接:

<a data-ui-state="selectedState.state" data-ui-state-params="{'myParam':aMyParam}">
       Link to page {{selectedState.name}} with myParam = {{aMyParam}}
  </a>

这是关于同一问题的 github 讨论:github

这里是帮助你的第三个答案:回答


推荐阅读