角度组件本身保持刷新,我失去了状态

时间:2017-04-27 14:57:38

标签: angular

我有一个视图,其中部分内容使用路由加载另一个。这是加载另一个的部分:

enum Direction {
    case east, west

    func combine<T: IntegerArithmetic>(_ lhs: T, _ rhs: T) -> T {
        switch self {
        case .east: return lhs + rhs
        case .west: return lhs - rhs
        }
    }
}

func example(direction: Direction, _ left: Int, _ right: Int) -> Int {
    let oneOfTheCalculations = direction.combine(left, right)
    let anotherCalculation = direction.combine(left, 2*right)
    let andAnotherOne      = direction.combine(left, 3*right)
    //...

    return oneOfTheCalculations
}

这里是我让我的其他组件(productDetails)加载的div:

<a href="/productDetails/{{product.ProductId}}">{{product.Name}}</a>

工作正常。但是,无论何时加载组件,托管组件都会自行刷新,我会丢失其状态。我不知道为什么会出现这种情况,因为我在AngularJS中编写了相同的应用程序并且它按预期工作。

1 个答案:

答案 0 :(得分:1)

您应该使用routeLink属性而不是href

<a [routerLink]="['/productDetails', product.ProductId]">{{product.Name}}</a>

将路线定义更新为

{path: 'productDetails/:ProductId', component: ProductDetailsComponent