0

ui-router を使用して状態を変更し、GUID パラメーターをコントローラーに渡そうとしています。私は剣道(異なる構文)を使用してこれを機能させているので、私が何を目指しているかを知っています。私は一生、取引が何であるかを理解することはできません。私は広範囲に検索しましたが、ui-sref の正しい構文があると信じています。ここにあります:

<a ui-sref="clientEdit({ clientId: '{{vm.clientModel.id}}' })">Edit Link</a>

レンダリングされたビューでこの出力を生成します (id がないことに注意してください)。

<a ui-sref="clientEdit({ clientId: 'bfd50b6c-6542-48c5-adf7-8c1a21caf421' })" href="#/clientEdit/">Edit Link</a>

これが私の状態です:

.state("clientEdit", {
  url: "/clientEdit/:clientId",
  templateUrl: "/CompanyDashboard/ClientsCrud",
  controller: "DashboardClientsCtl",
  controllerAs: "vm"
})

ID を ui-sref にハードコードすると、期待どおりに機能し、タグの正しい href が生成されます。このような:

<a ui-sref="clientEdit({clientId:'bfd50b6c-6542-48c5-adf7-8c1a21caf421'})">Hard code Edit Link</a>

ハードコーディングされた ID タグは、レンダリングされたビューで次の出力を生成します (まさに私が期待したとおりです)。

<a ui-sref="clientEdit({clientId:'bfd50b6c-6542-48c5-adf7-8c1a21caf421'})" href="#/clientEdit/bfd50b6c-6542-48c5-adf7-8c1a21caf421">Hard code Edit Link</a>

だから、私の質問は次のとおりです。ここで何か不足していますか? 私はすでに別のルートの剣道テンプレートを使用してこれを成功させているので、これがうまくいくはずだと本当に信じています.

参考までに、実際に動作する剣道テンプレート コードを次に示します。

template: "<a ui-sref='clientDetails({clientId:\"#=id#\"})'>#=customerNumber#</a>"

剣道の例のように引用符を double に変更して、引用符を削除し、Id 式から {{ }} を削除しようとしました。喜びはありません。

助けてくれてありがとう。

4

2 に答える 2

0

Solution here is to NOT wrap the param with {{}}

// instead of this
<a ui-sref="clientEdit({ clientId: '{{vm.clientModel.id}}' })">Edit Link</a>
// use this
<a ui-sref="clientEdit({ clientId: vm.clientModel.id})">Edit Link</a>

The content of a vm.clientModel.id is already a string, and will be correctly passed as string (it is GUID for JS it is string)

于 2015-03-11T13:58:56.107 に答える
0

そのため、質問を投稿する前に昨日これを試したと思っていましたが、そうではありませんでした。正しい構文は次のとおりです。

<a class="btn btn-sm btn-primary" ui-sref="clientEdit({ clientId: {{'vm.clientModel.id'}} })">Edit Client Test</a>

一重引用符が {{ }} の内側にあり、外側にないことに注意してください。シンプルでしょ?

この HTML は、次のような正しい HREF を生成します。

<a class="btn btn-sm btn-primary" ui-sref="clientEdit({ clientId: vm.clientModel.id })" href="#/clientEdit/bfd50b6c-6542-48c5-adf7-8c1a21caf421">Edit Client Test</a>

于 2015-03-12T12:27:50.600 に答える