从特定值为Smarty中的var赋值

时间:2016-07-08 17:33:14

标签: php smarty smarty3

我可以指定:

<template id="child-template">
  <slot name="form">
  </slot>
</template>

<div id="events-example">
  <child>
    <div slot="form">
      <input :value="msg">
      <button v-on:click="notify">Dispatch Event</button>
    </div>
  </child>
</div>

到Smarty3的var?怎么样?我见过// register child, which dispatches an event with // the current message Vue.component('child', { template: '#child-template', data: function () { return { msg: 'hello' } }, methods: { notify: function () { alert('ok'); } } }) var parent = new Vue({ el: '#events-example' }) ,但我不知道如何使用它连接值,任何帮助?

编辑:这是正确的方法吗?

您如何看待这个:

{{$phone_numbers.0.phone_number}} 
{{if $phone_numbers.0.extension}} EXT. {{$phone_numbers.0.extension}}{{/if}}

2 个答案:

答案 0 :(得分:1)

您无法在{assign}中使用条件,但可以使用{capture}

{{capture name=foo assign=bar}}
  {{$phone_numbers.0.phone_number}} 
  {{if $phone_numbers.0.extension}} EXT. {{$phone_numbers.0.extension}}{{/if}}
{{/capture}}

这会呈现{capture}块的内容,但不会输出它。相反,它存储供以后使用。

您可以在{$smarty.capture.foo}或变量{$bar}中找到它。

assign属性是可选的;您没有使用它,并且不会修改变量{$bar}(或您使用的任何名称)。但是,捕获的内容始终存储在变量{$smarty.capture.foo}中(或者您使用的任何名称)。

答案 1 :(得分:0)

作为替代方法,在第二个示例中,正确的语法是:

{{$phone_number=$phone_numbers.0.phone_number}}
{{if $phone_numbers.0.extension}}
{{$phone_number=$phone_number|cat:" EXT. "|cat:$phone_numbers.0.extension}}
{{/if}}

然后使用{{$ phone_number}}