AnnotationBuilder的Zf2自定义注释

时间:2013-12-23 13:34:32

标签: angularjs annotations zend-framework2 zend-form

我需要创建自己的注释以将其与AnnotationBuilder一起使用。

这是使用类似

的东西添加AngularJS指令
@AngularAnnotaion({"focuseMe"})

因为默认Annotation\Attributes不允许我添加不是对参数,例如focoseMedata-focuse-me,只有某种data-ng-model":"location",它给了我{ {1}}。

也许有人可以提供示例或建议的链接?

1 个答案:

答案 0 :(得分:-1)

如果该属性不是data- *

,则Zend不支持其他属性

要启用自定义属性,请按如下所示修改视图助手类

  1. 转到vendor \ ZF2 \ library \ Zend \ Form \ View \ Helper
  2. 打开AbstractHelper.php类
  3. 在此课程下,您将看到一个方法为prepareAttributes
  4. 更改以下行 -

    if (!isset($this->validGlobalAttributes[$attribute])
       && !isset($this->validTagAttributes[$attribute])
      && 'data-' != substr($attribute, 0, 5)
    ) 
    
    to
    
     if (!isset($this->validGlobalAttributes[$attribute])
         && !isset($this->validTagAttributes[$attribute])
         && 'data-' != substr($attribute, 0, 5)
         && 'ng-' != substr($attribute, 0, 3)
      ) 
    
  5. 我添加了&& 'ng-'!= substr($ attribute,0,3)。

    所以你可以在zf2表单中使用它,如下所示

    EX: -

    $this->add(array(
        'name' => 'pa_cat',
        'type' => 'Zend\Form\Element\Select',
        'attributes'    => array(
            'required'  => 'required',
            'class'     => 'styled_select pa_cat',  
            'ng-change' => 'test()',
            'options'   => array(
            ),
        ),
        'options' => array(
             'label'   => $plugin->z_xlt('Category')
        ),
     ));
    

    您可以使用抽象帮助程序类

    来使用自己的自定义属性