我使用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
我正在寻找替换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 =""中生成)并用减号( - )替换它们.
任何想法如何做到这一点?
此致,马库斯
我正在做一个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链接上传递?
我ui-sref在找到角度实际上做的事情时遇到了一些麻烦.
在HTML href是^ h yperlink 裁判 erence,所以不sref意味着小号 CRIPT 裁判 erence?
我在用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)
我为什么要收到一个字符串?
摘要:
使用时<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) 我在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视图.
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>静态地放置页面时,它正在工作但不确定为什么它在动态生成时不起作用.
请指教.
我想从控制器传递一些额外的数据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)
我想要imgName并imgDesc进入控制器.我已经检查$state但是没有找到它.有什么办法吗?
我有控制器需要接收两个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 ×10
ui-sref ×10
.htaccess ×1
base-tag ×1
definition ×1
html ×1
javascript ×1
routing ×1
state ×1