我需要传递并接收两个参数到我想转移到使用ui-srefui-router的状态.
比如使用以下链接将状态转换为homewith foo和bar参数:
<a ui-sref="home({foo: 'fooVal', bar: 'barVal'})">Go to home state with foo and bar parameters </a>
Run Code Online (Sandbox Code Playgroud)
控制器中的接收foo和bar值:
app.controller('SomeController', function($scope, $stateParam) {
//..
var foo = $stateParam.foo; //getting fooVal
var bar = $stateParam.bar; //getting barVal
//..
});
Run Code Online (Sandbox Code Playgroud)
我在控制器中得到undefined了$stateParam.
有人可以帮我理解如何完成它吗?
编辑:
.state('home', {
url: '/',
views: {
'': {
templateUrl: 'home.html',
controller: 'MainRootCtrl'
},
'A@home': {
templateUrl: 'a.html',
controller: 'MainCtrl'
},
'B@home': {
templateUrl: 'b.html',
controller: …Run Code Online (Sandbox Code Playgroud) 我想动态创建模板.这应该用于ComponentType在运行时构建一个并在托管组件内部放置(甚至替换)它.
直到我使用RC4 ComponentResolver,但RC5我收到消息:
ComponentResolver不推荐用于动态编译.使用ComponentFactoryResolver连同@NgModule/@Component.entryComponents或ANALYZE_FOR_ENTRY_COMPONENTS提供商,而不是.对于仅运行时编译,您也可以使用Compiler.compileComponentSync/Async.
我发现了这个(官方的angular2)文件
并了解我可以使用其中之一
ngIf用ComponentFactoryResolver.如果我将已知组件传递到托管内部@Component({entryComponents: [comp1, comp2], ...})- 我可以使用.resolveComponentFactory(componentToRender);Compiler...但问题是如何使用它Compiler?上面的注释说我应该打电话:Compiler.compileComponentSync/Async- 那怎么样?
例如.我想为一种设置创建(基于一些配置条件)这种模板
<form>
<string-editor
[propertyName]="'code'"
[entity]="entity"
></string-editor>
<string-editor
[propertyName]="'description'"
[entity]="entity"
></string-editor>
...
Run Code Online (Sandbox Code Playgroud)
在另一种情况下这个(string-editor被替换text-editor)
<form>
<text-editor
[propertyName]="'code'"
[entity]="entity"
></text-editor>
...
Run Code Online (Sandbox Code Playgroud)
等等(editors属性类型的不同数量/日期/引用,跳过一些用户的某些属性......).即这是一个例子,真正的配置可以生成更多不同和复杂的模板.
该 …
我正在使用带有es6模块语法的typescript 1.6.
我的文件是:
test.ts:
module App {
export class SomeClass {
getName(): string {
return 'name';
}
}
}
Run Code Online (Sandbox Code Playgroud)
main.ts:
import App from './test';
var a = new App.SomeClass();
Run Code Online (Sandbox Code Playgroud)
当我尝试编译该main.ts文件时,我收到此错误:
错误TS2306:文件'test.ts'不是模块.
我怎么能做到这一点?
我是打字稿的新手.在我的Durandal应用程序中,我迁移到VS-2012到VS-2015意味着打字稿0.9到打字稿1.8.4.迁移后,我遇到了很多构建错误.我解决了除了一个以外的所有人 我在事件类型上遇到了构建错误.
错误:"构建:属性'结果'在类型'EventTarget'上不存在"
代码如下所示:
var reader:any,
target:EventTarget;
reader= new FileReader();
reader.onload = function (imgsrc){
var fileUrl = imgsrc.target.result;
}
Run Code Online (Sandbox Code Playgroud)
"Imgsrc"正在进行类型事件.
它与typescript 0.9一起工作正常,但是1.8.4会抛出错误,因为"EventTarget"类型中不存在"结果".任何人都可以帮助解决这个问题.
注意:"target:EventTarget"来自lib.d.ts
我对Hibernate很新.我发现我们可以使用以下两种不同的方式获得不同的结果.谁能告诉我他们之间有什么区别?何时使用其他?
Projections.distinct(Projections.property("id"));
Run Code Online (Sandbox Code Playgroud)
VS
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
Run Code Online (Sandbox Code Playgroud) 我遇到了一个问题,在我看来很奇怪.
我通过nuget包控制台安装了bootstrap.
之后,在BundleConfig.cs文件中,我添加了两个要bundles列出的项目:
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.min.js"));
bundles.Add(new StyleBundle("~/Content/bootstrap").Include(
"~/Content/bootstrap.min.css",
"~/Content/bootstrap-theme.min.css"));
Run Code Online (Sandbox Code Playgroud)
当然,这些文件存在于本地.
该_Layout.cshtml文件包含
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
@Styles.Render("~/Content/bootstrap")
</head>
<body>
@RenderBody()
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但是当我看到一个视图(例如登录页面)时,我看到该bundle没有附加bootstrap部分.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>Login</title>
<link href="/Content/Site.css" rel="stylesheet"/>
<script src="/Scripts/modernizr-2.6.2.js"></script>
<!-- I expect bootstrap here but it is not displayed -->
</head>
<body>
...
<script src="/Scripts/jquery-1.9.1.js"></script>
<!-- I expect …Run Code Online (Sandbox Code Playgroud) 当尝试设置属性的类型时,我得到错误Cannot find name 'Subscription'.从哪个包中导入它?
import { Component, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
// I'm missing an import here. Just don't know which package to load from.
@Component({
moduleId: module.id,
selector: 'my-component',
templateUrl: 'my.component.html',
styleUrls: ['my.component.css']
})
export class MyComponent implements OnInit, OnDestroy {
private sub: any;
constructor(private route: ActivatedRoute,
private router: Router) {}
ngOnInit() {
this.sub = this.route.params.subscribe(params => {
let id = +params['id']; // (+) converts string 'id' to a …Run Code Online (Sandbox Code Playgroud) 如何在不使用查询字符串且仅使用一个路由名称的情况下允许可选参数到路由中?我目前正在指定每个路线五次以允许任何部件组合:
所有部件必须是可选的.路线必须解决任何变化.
.state("login", { url: "/login", templateUrl: "login.html", params: { a: null, b: null, c: null, d: null } })
.state("loginA", { url: "/login/:a", templateUrl: "login.html", params: { b: null, c: null, d: null } })
.state("loginAB", { url: "/login/:a/:b", templateUrl: "login.html", params: { c: null, d: null } })
.state("loginABC", { url: "/login/:a/:b/:c", templateUrl: "login.html", params: { d: null } })
.state("loginABCD", { url: "/login/:a/:b/:c/:d", templateUrl: "login.html" })
Run Code Online (Sandbox Code Playgroud)
必须有一个更容易/更清洁/更少丑陋的方式.
我使用"angular2 webpack"和"angular2/form,Observable",但遇到错误,需要帮助..
有一个自定义表单验证器 -
import {Observable} from 'rxjs/Rx';
import {REACTIVE_FORM_DIRECTIVES,FormControl, FormGroup, Validators} from '@angular/forms';
emailShouldBeUnique(control:FormControl) {
return new Observable((obs:any)=> {
control.valueChanges
.debouceTime(400)
.distinctUntilChanged()
.flatMap(term=>return !this.userQuery.emailExist(term))
.subscribe(res=> {
if (!res) {obs.next(null)}
else {obs.next({'emailExist': true}); }; }
)});}
Run Code Online (Sandbox Code Playgroud)
我可以找到文件 "/projection_direction/node_modules/rxjs/operator/debounceTime.js"
为什么会有这样的错误 -
属性'debouceTime'在'Observable'类型上不存在.
我想显示404错误页面,但我也想在位置保存错误的网址.
如果我会做那样的事情:
$urlRouterProvider.otherwise('404');
$stateProvider
.state('404', {
url: '/404',
template: error404Template
});
Run Code Online (Sandbox Code Playgroud)
网址将更改为/404.如何在不更改实际网址的情况下在错误的网址上显示错误消息?
typescript ×4
angular ×3
angularjs ×3
javascript ×3
angular-ui ×2
rxjs ×2
asp.net-mvc ×1
c# ×1
compilation ×1
distinct ×1
ecmascript-6 ×1
hibernate ×1
html ×1
nhibernate ×1
observable ×1