标签: ui-sref

使用ui-sref进行站点导航,如何在不可用时删除ui-sref属性

我使用ng-repeat设置如下导航,效果非常好

<a ui-sref="{{link.Route}}" ng-click="clickLink(link)">
    <span class="title"> {{link.Text}} </span><span class="selected"></span>
</a>
Run Code Online (Sandbox Code Playgroud)

但是,我的导航项经常有子链接,这意味着父链接实际上不是导航链接,它只是用于展开和查看子链接.但有时它是一个链接,并没有要显示的子链接.

问题出在那些特殊情况下,当没有可用的状态时,我需要一起删除ui-sref,因为根本不应该有链接.有它在那里抛出'错误:无效状态参考'''

当状态不可用时,如何删除ui-sref?

routing angularjs angularjs-routing angular-ui-router ui-sref

12
推荐指数
2
解决办法
8172
查看次数

angular ui.router ui-sref取代url字符 - 美化

我正在寻找替换ui-sref中的字符的可能性,尊重目标的URL.

.state('base.product.detail', {
    url: 'detail/:productName-:productId/'
Run Code Online (Sandbox Code Playgroud)

URL现在看起来像:

Now: 
http://localhost/detail/My%20Product%20Name-123456789/

Should:
http://localhost/detail/My-Product-Name-123456789/
Run Code Online (Sandbox Code Playgroud)

我想摆脱%20(它们也直接在ui-sref =""中生成)并用减号( - )替换它们.

任何想法如何做到这一点?

此致,马库斯

angularjs angular-ui-router ui-sref

9
推荐指数
1
解决办法
3770
查看次数

ui-router:在新选项卡中打开状态,目标="_空白",参数丢失

我正在做一个Angular应用程序,其中表的行各有一个按钮,点击这些按钮时,应该为按钮所在的行打开一个新选项卡.

我需要将参数传递到以这种方式创建的新选项卡中.我在状态初始化中声明了参数:

.state('viewlisting', {
   url: "/listings/:id",
   params: {
     'action': '',
   },
   controller: 'ListingsController',
   templateUrl: "partials/listings/view_listing.html"
 });
Run Code Online (Sandbox Code Playgroud)

按钮有这样的东西:

ui-sref='viewlisting({id:"+data+", action:"images"})'
Run Code Online (Sandbox Code Playgroud)

传递参数,一切都按预期工作.

//URL: /#/listings/42
$state.params.action //returns "images"
$state.params.id //returns "42"
Run Code Online (Sandbox Code Playgroud)

但是添加target="_blank"<a>标记会导致$ state.params对象返回以下内容:

//URL: /#/listings/42
$state.params.action //returns ""
$state.params.id //returns "42"
Run Code Online (Sandbox Code Playgroud)

我已经搜索了几个小时,我已经查看了ui-router文档和问题跟踪器,以找到解决我情况但我什么也没找到的东西.

状态参数是否未在target='_blank''ed ui-sref链接上传递?

state angularjs angular-ui-router ui-sref

7
推荐指数
1
解决办法
1万
查看次数

在Angular.js中定义ui-sref?

ui-sref在找到角度实际上做的事情时遇到了一些麻烦.

在HTML href^ h yperlink 裁判 erence,所以不sref意味着小号 CRIPT 裁判 erence?

html definition angularjs ui-sref

6
推荐指数
1
解决办法
4845
查看次数

$ stateParams将值转换为字符串

我在用UI-Router.这是我通过ui-sref以下路线选择的州之一:

.state("community", {
    url: "/community/:community_id",
    controller: "CommunityCtrl",
    templateUrl: "/static/templates/community.html"
})
Run Code Online (Sandbox Code Playgroud)

在我进入"社区"状态的一个模板中:

<div ui-sref="community({community_id: community.community_id})"></div>
Run Code Online (Sandbox Code Playgroud)

这是我的社区对象:

{
    name: 'Community name',
    community_id: 11 //int, not a string
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,关键字'community_id'包含一个int值而不是字符串值.但是,当我通过以下方式访问此参数时$stateParams:

community_id: "11" //string
Run Code Online (Sandbox Code Playgroud)

我为什么要收到一个字符串?

javascript angularjs angular-ui-router ui-sref

6
推荐指数
1
解决办法
1779
查看次数

"base href"使用ui-router在路由URL中添加目录路径

摘要:

使用时<base href="/prod/public/" />,它会在路由URL中添加目录路径e.x. http://www.example.com/prod/public/home

我的角度应用程序托管在prod/public目录中.

在我的public/index.html:

<base href="/prod/public/" />
Run Code Online (Sandbox Code Playgroud)

我的路线是这样的:

$stateProvider
     .state('home', {
      url: '/home',
      templateUrl: function($stateParams) {
          var path = 'app/users/views/home.html';
          return path;
      },
      controller: 'HomeCtrl'
})
Run Code Online (Sandbox Code Playgroud)

目录结构:

public_html
      -.htaccess
      - other folders
      - prod
           - public
                - app
                - index.html
           - bower.json
           - .htaccess
           - package.json
           - gulpfile.js
           - Readme.md
Run Code Online (Sandbox Code Playgroud)

.htaccess内部prod目录:

RewriteEngine On
Options -Indexes
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond …
Run Code Online (Sandbox Code Playgroud)

.htaccess base-tag angularjs angular-ui-router ui-sref

6
推荐指数
1
解决办法
6780
查看次数

在angularJS中调用ui-sref中的方法

我在ngGrid中有以下代码:

cellTemplate: '<div class="padding-t-5 padding-l-5"><a ui-sref="editCamera({id:row.entity.id})" ><i class="fa fa-edit margin-r-10"></i></a>\n\
                    <button ng-click="confirmClick() && grid.appScope.deleteRow(row)" confirm-click><i class="fa fa-trash"></i></button></div>'
Run Code Online (Sandbox Code Playgroud)

我想知道如何将ui-sref中提到的editCamera方法定义到控制器中.

如果我添加ng-click,那么我将如何传递id(传递给ui-sref)

我尝试使用$ scope.editCamera定义,但dint工作.

****UPDATE******

我需要的是在同一个控制器中执行添加和编辑操作,为此我需要一个不同的编辑操作方法.

angularjs ui-sref

5
推荐指数
1
解决办法
5725
查看次数

生成数据表列的动态内容时,ui-sref无法正常工作

我要将我的数据表的一列链接到一个动态的Angularjs视图.

Table 1 :

ID | Name | Action 

1  | Jack | Edit
Run Code Online (Sandbox Code Playgroud)

编辑应该是#/ clients/1/edit的链接

/ clients /:id/edit(app.client_edit)已经创建并且正在运行.

我正在尝试下面的代码:

$scope.dataTableOpt = {
 "columnDefs": [
    {
       "targets": 0,
       "render": function ( data ) {
          return "<a ui-sref=\"app.client_view({id: $row[0]})\">Edit</a>";
       }
    }
 ],
 'ajax': 'http://localhost/admin/clients'
};
Run Code Online (Sandbox Code Playgroud)

鉴于结果:

Link1 = < a ui-sref="app.client_view({'id': '1'})">edit</ a>
Run Code Online (Sandbox Code Playgroud)

预期结果:

Link2 = < a ui-sref="app.client_view({id: '1'})" class="ng-scope" href="#!/client/2">edit</ a>
Run Code Online (Sandbox Code Playgroud)

当我< a ui-sref="app.client_view({'id': '1'})">test< / a>静态地放置页面时,它正在工作但不确定为什么它在动态生成时不起作用.

请指教.

angularjs angular-ui-router ui-sref

4
推荐指数
1
解决办法
1229
查看次数

使用ui-sref传递数据属性

我想从控制器传递一些额外的数据ui-sref.我循环一个json对象并将数据添加到sref:<a data-imgName="{{ img.name }}" data-imgDesc="{{ img.desc }}" ui-sref="main.imgDesc({imgid: '{{ img.id }}'})">

$stateProvider.state('main.imgDesc', {
        url: '/image/:imgid',
        templateUrl: '...',
        controller: 'ImageDescCtrl'
    });
Run Code Online (Sandbox Code Playgroud)

我想要imgNameimgDesc进入控制器.我已经检查$state但是没有找到它.有什么办法吗?

angularjs angular-ui-router ui-sref

3
推荐指数
1
解决办法
4605
查看次数

如何在路由ui中传递两个参数

我有控制器需要接收两个id值.一个id值标识供应商,第二个id标识事件(eventId和VendorId).

我现在的状态就是这样.

 .state('/vendordetail', {
         url: '/vendordetail/:vendorId',
         templateUrl: '/home/vendordetail',
         controller: 'VendorDetailController',
         resolve: {
             vendorId: ['$stateParams', function ($stateParams) {
                 return $stateParams.vendorId;
             }],
             vendorPreload: ['$stateParams', 'vendorDetailRepo', '$state', function ($stateParams, vendorDetailRepo, $state) {
                 if ($stateParams.vendorId != "")
                     return vendorDetailRepo.get({ id: $stateParams.vendorId }).$promise;
             }]
         }

     });
Run Code Online (Sandbox Code Playgroud)

目前我能够拿到vendorId.但我想在州内加入一个eventId.任何人都可以帮我修改我的状态以获取第二个参数(eventId)吗?

谢谢.

angularjs angular-ui-router ui-sref

1
推荐指数
1
解决办法
2538
查看次数