使用AngularJS + ui-router,我需要将一个url与单词列表匹配:
但是,使用正则表达式我尝试使用一个或两个单词,它工作
url: '/{source:(?:John|Paul)}/:id'
Run Code Online (Sandbox Code Playgroud)
但我需要将我的网址与单词列表相匹配.
例如:var sourceList = ['John','Paul','George','Ringo']; url:'/ {source :(?:sourceList)} /:id'
有没有办法比较我的网址与匹配的数组列表?
我的应用程序$state.go在选项卡之间切换时使用,这会导致重新初始化这些控制器中的控制器和范围变量得到更新并导致内存泄漏。有没有办法停止重新初始化控制器但在状态更改时更改 URL?
下面的示例是我的应用程序中的 routes.js。
.state('home',
{
abstract : true,
url : '/home',
templateUrl : 'scripts/home.html'
})
.state('home.summary',
{
url : '/summary?userId',
controller : 'SummaryCtrl',
views :
{
summary:
{
templateUrl: 'scripts/home/summary.html'
}
}
})
.state('home.summary.detail',
{
url : '/detail/:id',
controller : 'DetailCtrl',
views :
{
detail:
{
templateUrl: 'scripts/home/detail.html'
}
}
})
Run Code Online (Sandbox Code Playgroud)
如何停止重新加载 DetailCtrl 但在状态 home.summary.detail 时更改 URL,如果 DetailCtrl 已经为唯一 id 加载了???
还尝试使用 $q.reject 来解析子状态,它会停止重新加载控制器但不会更改 url。
还尝试过 reloadOnSearch=false 它会停止重新加载控制器但不会更改 url。
我正在使用Joda Time库在此库中使用parseDateTime函数将字符串解析为dateTime,并注意到此库支持的日期范围是-292,269,054到292,277,023.
谁能知道如何使用这个库限制日期范围.特别是年(YYYY)到9999?
谢谢.
我正在 angularjs 应用程序中探索 JavaScript es6 代码,并使用 grunt babel 将 es6 编译为 es5。
我的单元测试 (jasmine) 不能使用 phantomjs 与 es6 代码一起运行。
什么是运行测试的最佳方式?有没有什么插件可以让 jasmine 运行 es6 代码?
在我的Angularjs应用程序中,我试图捕获其中一个promise块中的$ q.reject,但无法执行此操作.
在下面的代码中,我拒绝了响应,如果响应返回空数据,我需要在其中一个promise块中捕获被拒绝的响应,并使用$ state进行一些重定向.目前它没有进入$ q.reject()成功块的错误块.
有没有办法将$ q.reject捕获到promise块?
x.retrieve=function(id){
return $http.get(url);
}
var promise=x.retrieve(id);
promise.then(
function(response){
if($.isEmptyObject(response.data)){
return $q.reject(response);
}
y.push({x:a});
},function (rejection) {
$state.go("detail");
}
);
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
谢谢.
angularjs ×4
javascript ×2
datetime ×1
ecmascript-6 ×1
grunt-babel ×1
jasmine ×1
java ×1
jodatime ×1
regex ×1