- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Aurelia JS 元素中使用 Kendo UI Splitter 小部件,该元素是通过 aurelia-cli(au
程序)启动的。
为了有一个可重现的例子,我在下面添加了一个 bash
脚本,它使用 au
开始一个新元素(因为 au new
只是交互式的,并且没有在批处理模式下有用的选项,我不得不在脚本中使用 expect
来自动化它),然后添加相关的源文件,最后构建并导出它.这是我的问题:
http://localhost:9000
上的 au run
运行。我怎样才能“导出”一个合适的“bundle ”站点?关于大小/高度问题 - 这是我通过 au run
/localhost:9000
查看 index.html
时得到的结果:
请注意,我在我的 CSS 类中为左 Pane div 元素使用的 height
设置被 Kendo 框架覆盖,该框架明确将高度写入内联 style
元素的属性。与此相关,我找到了http://docs.telerik.com/kendo-ui/controls/layout/splitter/how-to/expand-splitter-to-100-height和 Kendo UI Splitter height ,这表明可能需要 JavaScript 来执行此操作 - 但我不确定如何在 Aurelia JS 上下文中应用它。
关于 bundle 问题:我找到了这个文档(顺便说一句,是否可以在 aurelia hub URL 中引用特定的框架版本?):
http://aurelia.io/hub.html#/doc/article/aurelia/framework/latest/the-aurelia-cli/4
Aurelia CLI apps always run in bundled mode, even during development. To build your app, simply run
au build
. ...
By default, the Aurelia CLI creates two bundles, anapp-bundle.js
, and avendor-bundle.js
.
我理解这一点的方式是,node_modules
中每个需要的依赖项都在 scripts/
的子文件夹中的两个 .js 文件中“编译”应用程序。因此,为了“导出”一个“生产”站点(假定 au
cli 没有执行此操作的命令),可以只复制元素文件夹而不需要其 node_modules
子文件夹,然后只需在浏览器中查看副本中的 index.html
- 一切都应该有效。事实上,这对我有用,直到我尝试使用 Kendo UI 组件。
下面的脚本基本上是在/tmp/testsplit
中创建元素,使用au build
构建它,复制没有node_modules/
的元素文件夹到 /tmp/testsplit-export
,然后在原始元素文件夹中运行 au run --watch
。当我查看 http://localhost:9000/
或 file:///tmp/testsplit/index.html
时,一切都很好 - 但当我查看 file:///tmp/testsplit-export/index.html
,没有呈现任何内容,Firefox 控制台日志告诉我:
...
DEBUG [templating] importing resources for mainpage.html <unavailable> vendor-bundle.js:13938
ERROR [app-router] <unavailable> vendor-bundle.js:13968
ERROR [app-router] Router navigation failed, and no previous location or fallbackRoute could be restored. vendor-bundle.js:13968
我的版本是:
$ node --version
v4.2.6
$ npm --version
2.14.12
$ npm show aurelia-framework version
1.0.8
$ npm show aurelia-cli version
0.23.0
这是 bash
脚本:
#!/usr/bin/env bash
# uses `expect` and `rsync`: sudo apt-get install expect rsync
set -x
cd /tmp
REINSTALL=true # comment this var assignment to not recreate the project
if [ "$REINSTALL" == "true" ] ; then
rm -rf /tmp/testsplit
# npm install aurelia-cli -g # so we have `au` command
# `au new` also creates new dir
# note `au new --here` asks different questions!
# wout --here: 1. Default ESNext (Default)
# with --here: 1. Yes (Default) Would you like to create this project?
#~ echo -r "1\r1\r" | au new testsplit # NOWORK, must use `expect`
expect -c '
set timeout -1
proc abort {} {
puts "Timeout or EOF\n"
exit 1
}
spawn au new testsplit
expect {
"\\\[Default ESNext\\\]>" { send "1\r" ; }
default abort
}
expect {
"\\\[Yes\\\]>" { send "1\r"; }
default abort
}
# note: the next q is the "Would you like to install the project dependencies?"
# it downloads into node_modules (182MB), and may take a while
expect {
"\\\[Yes\\\]>" { send "1\r"; }
default abort
}
expect eof
catch wait result
puts "Finished OK\n"
'
fi
cd /tmp/testsplit
if [ "$REINSTALL" == "true" ] ; then
npm install jquery kendo-ui-core aurelia-kendoui-bridge --save
fi
{ set +x ; } 2>/dev/null
function setfilename { FILENAME="$1"; echo $FILENAME; }
if [ "$REINSTALL" == "true" ] ; then
echo " Patching files:"
export LOOKFOR="" REPLACER=""
setfilename "aurelia_project/aurelia.json" ;
IFS='' read -r -d '' REPLACER <<'EOF'
"jquery",
{
"name": "kendo-ui-core",
"path": "../node_modules/kendo-ui-core/js/",
"main": "kendo.ui.core"
},
{
"name": "aurelia-kendoui-bridge",
"path": "../node_modules/aurelia-kendoui-bridge/dist/amd",
"main": "index"
},
EOF
IFS='' read -r -d '' LOOKFOR <<'EOF'
"aurelia-templating-binding",
EOF
perl -pi -e 's/($ENV{"LOOKFOR"})/$1$ENV{"REPLACER"}/' "$FILENAME"
setfilename "src/main.js" ;
IFS='' read -r -d '' LOOKFOR <<'EOF'
.feature('resources');
EOF
IFS='' read -r -d '' REPLACER <<'EOF'
.feature('resources')
// .plugin('aurelia-kendoui-bridge', kendo => kendo.core());
.plugin('aurelia-kendoui-bridge');
EOF
perl -pi -e 's/(\Q$ENV{"LOOKFOR"}\E)/$ENV{"REPLACER"}/' "$FILENAME"
fi
echo " Adding files:"
setfilename "src/app.html" ; cat > "$FILENAME" << 'EOF'
<template>
<div>Test App</div>
<div id="container">
<router-view></router-view>
</div>
</template>
EOF
setfilename "src/app.js" ; cat > "$FILENAME" << 'EOF'
export class App {
configureRouter(config, router){
config.title = 'Test App Title';
config.map([
{ route: ['','mainpage'], name: 'mainpage', moduleId: './mainpage', nav: true, title:'Main Page' },
]);
this.router = router;
}
}
EOF
setfilename "src/mainpage.html" ; cat > "$FILENAME" << 'EOF'
<template>
<require from="./mainpage.css"></require>
<require from="aurelia-kendoui-bridge/splitter/splitter"></require>
<!-- these two css must be present, else the drag handles are styled/positioned wrong! -->
<require from="../node_modules/kendo-ui-core/css/web/kendo.common.core.min.css"></require>
<require from="../node_modules/kendo-ui-core/css/web/kendo.default.min.css"></require>
<div>( see also: http://aurelia-ui-toolkits.github.io/demo-kendo/#/samples/splitter-basic-use )</div>
<div class="splitpane-holder" ak-splitter="k-orientation: horizontal;">
<div class="pane-left"></div>
<div class="pane-right"></div>
</div>
</template>
EOF
setfilename "src/mainpage.js" ; cat > "$FILENAME" << 'EOF'
import * as $ from 'jquery';
//// both of these names seem to work the same:
// import {Splitter} from 'kendo-ui-core';
import {kendoSplitter} from 'kendo-ui-core';
export class Mainpage {
}
EOF
setfilename "src/mainpage.css" ; cat > "$FILENAME" << 'EOF'
html, body {
height:100%;
margin:0;
padding:0;
overflow:hidden;
}
.splitpane-holder {
height: calc(100% - 6em);
width: calc(100% - 2em);
position: relative;
}
.pane-left, .pane-right { height: 100%; }
.pane-left { background-color: #AAA; }
.pane-right { background-color: #888; }
EOF
au build
rm -rf /tmp/testsplit-export
# add /. at end of source folder in rsync so hidden files are copied, else source will be copied as a folder inside destination
rsync -av /tmp/testsplit/. /tmp/testsplit-export --exclude node_modules
echo -e "Exported /tmp/testsplit-export/index.html\n"
au run --watch
最佳答案
此代码适用于所有浏览器,用“splitpane-holder”代替“horizontal”?
<div id="horizontal" role="horizontal" style="height: 100%;">
....
<style>
html,
body {height:100%; padding:0; margin:0;}
body {display:flex; flex-direction:column;}
#horizontal {flex-grow:1;}
关于css - aurelia-cli 元素 : height in %, 和 bundle 导出的 Kendo UI 拆分器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41203950/
我想在 aurelia 中触发两种不同的方法,实现这一目标的最佳方法是什么? 最佳答案 我可能会做的是以下 HTML Javascript yourFunction(event, parts) {
我正在学习 Aurelia 的工作原理,并且我正在尝试让一个简单的自定义属性工作。它所做的就是根据某些值的变化来改变 div 文本的颜色。 我有一个 div,它有: high.bind="ch
我想在小型移动 Cordova 应用程序中使用 aurelia。是否可以省略任何模块加载器,如 requirejs 并直接在脚本标签中使用 aurelia 包,如 ? 谢谢, 乔治 最佳答案 您
我正在构建一个 aurelia 自定义元素库,供多个不同的 aurelia 应用程序使用,但在使用 CLI 进程将自定义元素 html 正确 Hook 到应用程序包时遇到了麻烦。 我目前认为该库将成为
我刚刚尝试了 aurelia 的入门应用程序,并注意到当在两个浏览器(chrome 和 ff)中打开时,它会保持导航同步。看起来路由器实例驻留在应用程序范围内。我在文档中没有找到任何有关范围的信息,所
Knockout JS 有虚拟元素的概念。这些是“ headless ”元素,您可以将其绑定(bind)到没有 HTML 元素作为容器的元素。这允许您在不发出外部 HTML 的容器中绑定(bind)数
最近我一直在玩不同的框架和库,寻找真正适合我需求的东西。 你看,我的工作主要涉及创建 asp.net mvc 应用程序,对于大多数使用 Razor 和一点点 jQuery 就足够了。但在某些情况下,仅
最后,我开始与 Aurelia 合作。有一个入门套件可用 Here这有助于初始化 Aurelia。但它是一个模板,应该在网站模板中使用。 我有一个预配置 WebApi项目,我想在其中使用 Aureli
在 Aurelia 从这里发布之前,我使用了启动工具包来构建我的应用程序: https://github.com/aurelia/skeleton-navigation 但是当 Aurelia 发布时
我已经使用 typescript 安装了一个全新的骨架导航,并尝试按照此处的说明进行操作: http://aurelia-ui-toolkits.github.io/demo-materialize/
我有以下按钮,我只想在满足给定条件时激活(点击启用),尽管视觉上禁用了按钮 click 事件在用户点击时仍会触发。 [更新]将 false 更改为 true 我在清理示例以在此处发布时错误地插入了错
在 aurelia 中,当在自定义元素中使用插槽时,是否可以以某种方式在插槽上使用 ref 元素(也许是 Aurelia 团队的新功能?github 问题据说是在 SO 而不是在 github 上发布
我正在为我的项目使用 Aurelia,现在我在导航到上一页时遇到问题。我想知道有什么方法可以从 Aurelia 路由器对象获取以前的路由器信息。 this.router.navigateToRoute
我正在寻找一种将类动态添加到 aurelia 模板的方法。如果特定的 li 可见,我必须添加一个事件类。 例子 {{title}}
我已经向我的路由器添加了授权管道步骤。一切正常,但是当我使用 Redirect 时类来将用户指向登录页面,它接受一个 URL 作为它的参数。如果我使用 Router.navigateToRoute()
我在将属性传递到自定义组件时遇到了一些问题。我尝试通过以下方式声明我的组件: import {customElement, bindable} from "aurelia-framework";
{ route: 'content/:id', name: 'Details', title: 'Details', viewPorts
我正在处理 Aurelia Sample app并希望将构建输出(vendor-bundle.js 和 app-bundle.js)部署到 www-root\scripts而不是默认 scripts目
我正在尝试创建一个简单的 Aurelia 可重用小部件,它封装了一个标签和一个文本输入字段。我们的想法是创建一个包含这些可重用 UI 小部件的库,以便更轻松地组合屏幕和表单——或许可以从“Angula
我正在尝试在复选框列表上使用去抖动绑定(bind)行为,但它似乎没有按我预期的方式工作(我不确定你是否可以去抖动复选框): Checkbox value "${v}" 单击任何复选框会导致
我是一名优秀的程序员,十分优秀!