代码之家  ›  专栏  ›  技术社区  ›  user7189675

Yii2未捕获引用错误:$未定义

  •  0
  • user7189675  · 技术社区  · 6 年前

    MyAssetset:

    class AppAsset extends AssetBundle
    {
        public $basePath = '@webroot';
        public $baseUrl = '@web';
        public $css = [
            'css/site.css',
        ];
        public $js = [
        ];
        public $depends = [
            'yii\web\YiiAsset',
            'yii\bootstrap\BootstrapAsset',
            'yii\web\JqueryAsset'
        ];
    }
    

    MyMain.php 已注册此资产:

    AppAsset::register($this);
    

    在我的测试中。php使用jquery

    <div class="container">
    <div class="row">
        <div class='col-sm-6'>
            <div class="form-group">
                <div class='input-group date' id='datetimepicker1'>
                    <input type='text' class="form-control" />
                    <span class="input-group-addon">
                        <span class="glyphicon glyphicon-calendar"></span>
                    </span>
                </div>
            </div>
        </div>
        <script type="text/javascript">
            $(function () {
                $('#datetimepicker1').datetimepicker();
            });
        </script>
    </div>
    </div>
    

    出现以下错误:

    未定义Uncaught ReferenceError:$

    希望你们能帮助我。谢谢

    2 回复  |  直到 6 年前
        1
  •  0
  •   Ziya Vakhobov    6 年前

    您应该通过资产或registerJs方法使用javascript脚本

    <?php $this->registerJs('$(function () { $(\'#datetimepicker1\').datetimepicker();});', View::POS_END); ?>
    
        2
  •  0
  •   ScaisEdge    6 年前

    这是默认AppAsset。php for yii2(此示例用于后端)

      <?php
      /**
       * @link http://www.yiiframework.com/
       * @copyright Copyright (c) 2008 Yii Software LLC
       * @license http://www.yiiframework.com/license/
       */
    
      namespace backend\assets;
    
      use yii\web\AssetBundle;
    
      /**
       * @author Qiang Xue <qiang.xue@gmail.com>
       * @since 2.0
       */
      class AppAsset extends AssetBundle
      {
          public $basePath = '@webroot';
          public $baseUrl = '@web';
          public $css = [
              'css/site.css',
          ];
          public $js = [
          ];
          public $depends = [
              'yii\web\YiiAsset',
              'yii\bootstrap\BootstrapAsset',
          ];
      }
    

    正如您所看到的,没有对jquery的引用,因为它通常由yii2资产包管理

    尝试将此内容用于Appset。php(最终使用您需要的名称空间)引用其他jquery资产并注册。。 这在高级模板中正常工作