小编mtp*_*ltz的帖子

WKHTMLtoPDF头文件内容未以PDF格式显示

我试图使用我在这里找到的这个例子在第一页上隐藏页眉页码.只有当我使用footer-html并且如果我将它与header-html一起使用时,它才会显示/隐藏任何内容.最初我试图增加这个解决方案这也使用footer-html工作,但由于我不能让它在标题中工作,我继续搜索.我已经尝试了有没有'header-center'=>'[[page]]',以防万一使用header-html导致冲突.最近有人能够在标题中使用它吗?我正在使用PHPWKHTMLtoPDF包装器版本1.2.6-dev,如果这有助于WKHTMLtoPDF的最新版本,因为最新版本的PHPWKHTMLtoPDF使用名称空间,我们正在使用CodeIgniter 2.x-dev,它不支持它们(或打得好不能记住).

    // Create document PDF
    $pdf = new $this->wkhtmltopdf;

    // Locate WkHtmlToPdf executable for Windows
    if( $pdf->getIsWindows() ) 
    {
        $pdf->setOptions( array( 'binPath' => 'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe', 
                                 'no-outline',
                                 'encoding' => 'UTF-8',
                                 'margin-top'    => 30,
                                 'margin-right'  => 20,
                                 'margin-bottom' => 30,
                                 'margin-left'   => 20,

                                 // Default page options
                                 'disable-smart-shrinking',
                                 'user-style-sheet' => 'pdf.css',
                                 'header-html' => dirname(__FILE__) . '\..\views\wkhtmltopdf\header.html'
        ) );
    }

    // Generate document fields
    $docInputs = $this->generate_inputs( $inputs, json_decode( $this->load->file( APPPATH . '/mapping/' . $document['mapping'], TRUE ), TRUE …
Run Code Online (Sandbox Code Playgroud)

php wkhtmltopdf

7
推荐指数
2
解决办法
8456
查看次数

将D3注入AngualrJS的正确惯例

我已经看到只使用全局D3对象的指令,我也看到了通过在服务中返回注入全局D3对象的指令,我看到了添加D3脚本并返回一个promise的指令解决了提供D3对象的脚本加载问题.

在注射服务中使用它似乎最有意义(参见示例1和2),但我不确定哪种方式更好.示例2将保证在运行任何代码之前已加载D3,但似乎没有人这样做,而且它意味着您必须将整个指令包装在服务中,否则d3创建的svg对象超出范围或可能是未定义的(参见示例2),但至少我认为将始终首先解析编译的承诺,请参见示例3.

示例1:服务传递D3全局对象

.factory('D3Service', [,
    function () {

        // Declare locals or other D3.js
        // specific configurations here.

        return d3;
    }]);
Run Code Online (Sandbox Code Playgroud)

示例2:服务将D3脚本添加到DOM并传递promise

.factory('D3Service', ['$window', '$document', '$q', '$rootScope',
    function ($window, $document, $q, $rootScope) {

        var defer = $q.defer();

        var scriptTag = $document[0].createElement('script');
        scriptTag.type = 'text/javascript';
        scriptTag.src = 'https://d3js.org/d3.v3.min.js';
        scriptTag.async = true;
        scriptTag.onreadystatechange = function () {

            if (this.readyState == 'complete') {
                onScriptLoad();
            }
        }
        scriptTag.onload = onScriptLoad;

        var script = $document[0].getElementsByTagName('body')[0];
        script.appendChild(scriptTag);

        //---
        // PUBLIC API
        //--- …
Run Code Online (Sandbox Code Playgroud)

javascript d3.js angularjs

7
推荐指数
1
解决办法
1192
查看次数

如何从指令添加/删除类

我有一个自定义指令,应该能够根据其他条件添加/删除类.

@Directive({
  selector: '[customDirective]'
})
export class CustomDirective {
  constructor(service: SomService) {
    // code to add class

    if (service.someCondition()) {
        // code to remove class
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

angular-directive angular2-directives angular

7
推荐指数
2
解决办法
1万
查看次数

始终需要用于反应形式的Angular 4 DatePicker的ngBootstrap

使用反应形式我添加了ngbDatePicker:

<input type="text"
        id="business_incorp_date"
        class="form-control"
        formControlName="business_incorp_date"
        ngbDatepicker
        #incorporatedDatePicker="ngbDatepicker"
        (click)="incorporatedDatePicker.toggle()"
        readonly>
Run Code Online (Sandbox Code Playgroud)

对于以下形式的表单模型:

this.form = this.formBuilder.group({
  id: [
    0, [Validators.required]
  ],

  // ... removed for brevity

  business_type: [
    '', [Validators.required]
  ],
  business_incorp_date: [
    '', [FormValidators.date] // <-- NOT REQUIRED BY MODEL
  ],
  business_desc: [
    '', [Validators.required]
  ]

  // ...
});
Run Code Online (Sandbox Code Playgroud)

但是,如果该字段为空,则对于以下内容仍然是ngInvalid ngbDateFormat:

{ "ngbDate": { "invalid": { "year": null, "month": null, "day": null } } }
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何使DatePicker字段允许空字符串?

datepicker ng-bootstrap angular

7
推荐指数
1
解决办法
7150
查看次数

JSDoc 这就是您将@typedef 标记为@global 的方式吗?

只需确保在我们的 Node 服务器的模块中使用它是正确的方法,以便能够在@typedef整个应用程序中使用它,而不是在需要的每个模块/文件中重复它。从文档中我无法确定这是否正确,并且是否有人对存储全局 @typedef 的位置有意见,以便在整个应用程序中使用时是否需要更改它们很容易找到。

/**
 * Universally unique identifier.
 * @global
 * @typedef {string} UUID
 */
Run Code Online (Sandbox Code Playgroud)

javascript jsdoc jsdoc3

7
推荐指数
1
解决办法
1809
查看次数

RxJS 检测订阅何时关闭

有没有办法检测订阅何时关闭?我有一个加载组件,它在订阅存在时显示加载消息 && 未关闭,否则显示内容,但是一旦关闭,我想重置引用订阅的变量,否则我不能mySubscription.closed用作有用的指示在模板中。

rxjs rxjs5 angular angular5

7
推荐指数
1
解决办法
5830
查看次数

Ionic Build无法在JAVA_HOME中找到JDK集,即使它是唯一的Java安装

当我安装Java JDK 1.8.x时,它最初正在工作,当我在关闭过夜后第二天重新启动时,我在构建时得到了这个:

$ ionic build android
Updated the hooks directory to have execute permissions
Running command: d:\installs\nodejs\node.exe d:\htdocs\publicworks\mobile\hooks\after_prepare\010_add_platform_class.js d:/htdocs/publicworks/mobile
add to body class: platform-android
Running command: d:\htdocs\publicworks\mobile\platforms\android\cordova\build.bat
ANDROID_HOME=c:\Users\mtpultz\AppData\Local\Android\android-sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_45\bin
Running: d:\htdocs\publicworks\mobile\platforms\android\gradlew cdvBuildDebug -b d:\htdocs\publicworks\mobile\platforms\android\build.gradle -Dorg.gradle.daemon=true

ERROR: JAVA_HOME is set to an invalid directory: C:\Program Files\Java\jdk1.8.0_45\bin

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

d:\htdocs\publicworks\mobile\platforms\android\cordova\node_modules\q\q.js:126
                    throw e;
                          ^
Error code 1 for command: cmd with args: /s /c "d:\htdocs\publicworks\mobile\platforms\android\gradlew cdvBuildDebug -b …
Run Code Online (Sandbox Code Playgroud)

java android cordova ionic-framework

6
推荐指数
1
解决办法
2万
查看次数

由于缺少获取功能,使用Gulp-Hub导致多个文件中的Gulp 4拆分任务失败

使用咕嘟咕嘟4和配方分裂我的任务为使用大口集线器的多个文件刚刚从尝试加载任务文件抛出这个错误.任务文件非常简单,只是想测试一切正常.

我在Github上的Undertaker上找到了这个关于get函数的引用,但我真的不明白他们想说的是什么,看起来像gulp-hub应该是在解除它.

其他人遇到这个并知道如何解决它?

Gulp文件

'use strict';

var gulp = require('gulp');

var HubRegistry = require('gulp-hub');

// Load some files into the registry
var hub = new HubRegistry(['gulp/tasks/*.js']); // only one file help.js

// Tell gulp to use the tasks just loaded
gulp.registry(hub);
Run Code Online (Sandbox Code Playgroud)

帮助任务 - /gulp/tasks/help.js

'use strict';

var gulp = require('gulp');

gulp.task('help', []);
Run Code Online (Sandbox Code Playgroud)

错误抛出

$ gulp help
[01:36:37] Loading gulp\tasks\help.js

D:\projects\app\node_modules\undertaker\lib\helpers\validateRegistry.js:36
      throw err;
      ^
 AssertionError: Custom registry must have `get` function
    at validateRegistry (D:\projects\app\node_modules\undertaker\lib\helpers\validateRegistry.js:28:5)
    at Gulp.registry (D:\projects\app\node_modules\undertaker\lib\registry.js:17:3) …
Run Code Online (Sandbox Code Playgroud)

gulp gulp-4

6
推荐指数
1
解决办法
2463
查看次数

Laravel 5 - 在服务器上使用Blade API编译字符串和插值

使用Blade服务容器我想在其中带一个带有标记的字符串并将其编译下来,以便将其添加到刀片模板中,并进一步插值.

所以我在从以下数据库中检索到的服务器上有一个电子邮件字符串(简称为abridge):

<p>Welcome {{ $first_name }},</p>
Run Code Online (Sandbox Code Playgroud)

我希望它插入到

<p>Welcome Joe,</p> 
Run Code Online (Sandbox Code Playgroud)

所以我可以将它作为$ content发送到Blade模板并让它呈现所有内容和标记,因为Blade不会插值两次,现在我们的模板是客户端制作并存储在数据库中.

Blade::compileString(value)生成<p>Welcome <?php echo e($first_name); ?>,</p>,但我无法弄清楚如何Joe使用Blade API 将$ first_name解析为字符串,并且以后不会在Blade模板中执行此操作.它只是在电子邮件中显示为带有PHP分隔符的字符串,如:

<p>Welcome <?php echo e($first_name); ?>,</p>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

laravel laravel-5 laravel-5.3

6
推荐指数
1
解决办法
3360
查看次数

Grunt - 您可以在自定义注册任务中调用grunt-contrib-copy并动态自定义副本吗?

我知道我可以在grunt.config中设置一个任务,它将grunt-contrib-copy文件从src复制到dest,并查看Grunt文档,我知道我可以使用grunt.file.copy复制单个文件.

但是,是否可以在自定义注册任务中动态创建grunt-contrib-copy任务以适应从bash发送的参数?我想创建一个新目录grunt.file.mkdir("some/path/appfoldername"),然后将文件从另一个目标复制到该文件夹​​,但在运行自定义任务之前我不会知道文件夹名称.所以类似于:

grunt create_app:appfoldername
Run Code Online (Sandbox Code Playgroud)

所以我可以一次复制一个文件,但文件会改变,所以需要grunt-contrib-copy的强大功能,但具有自定义注册任务的灵活性.

如果我的解释不够清楚,我会想象这样的事情:

grunt.registerTask('createCopy', 'Create a copy', function(folderName) {

    var cwd = grunt.template.process("some/path/to/app");
    var src = grunt.template.process("some/path/to/src");
    var dest = grunt.template.process("some/path/to/dest") + folderName;

    grunt.task.run('copy: {  
       files: { 
          cwd: cwd,
          src: src,
          dest: dest
       }           
    }');
}
Run Code Online (Sandbox Code Playgroud)

UPDATE

grunt.registerTask('mkapp', 'Create Application', function(appName) {

    // Check appName is not empty or undefined
    if(appName !== "" && appName !== undefined) { 

        // Require node path module, since not a global
        var path = require("path");

        // Resolve directory path using templates …
Run Code Online (Sandbox Code Playgroud)

javascript bash node.js gruntjs grunt-contrib-copy

5
推荐指数
1
解决办法
1459
查看次数