我一直在努力這一段時間,我不能得到這個工作,我準備把計算機扔出窗外!bootstrap材料設計和Aurelia
使用Aurelia的skeleton-nav安裝bootstrap-material-desing使用jspm install bootstrap-material。然後,它在你的app.js
import 'bootstrap';
import 'bootstrap/css/bootstrap.css!';
import 'bootstrap-material';
@inject(Router)
export class App {
的CSS和JS進口罰款,但初始化JS就是問題的用武之地。您可以通過調用$ .material.init初始它添加如下引導進口() ,這段代碼添加了漣漪效應,所以當你點擊一個按鈕時,你會得到像動畫一樣的漣漪或波浪,這就是問題出現的地方,讓$ .material.init()在Aurelia中正常工作
1)After一些關於gitter的幫助你可以使用attach()回調來運行這段代碼,但這隻適用於每個類,所以每個頁面/類我都必須添加
//attached() {
// $.material.init();
//}
作爲一個替代上述gitter建議使用路由器管道調用它的人,我試過這個,仍然無法讓它加載到每個頁面,當它添加到管道後面的文檔我加入這樣的
config.addPipelineStep('modelbind', BSMaterial);
然後
class BSMaterial {
run(routingContext, next) {
$.material.init();
console.log('bsmaterial fired');
return next();
//
} }
此工程部分,如果你點擊導航鏈接,那麼你得到的漣漪效應,但嘗試點擊提交按鈕沒有漣漪效應,所以它似乎並沒有被應用到每個班,但只是路由器,我猜
的另一個問題是BS材料的另一個效果,你可以添加一個CSS類的輸入控件調用
floating-label
,那麼當你點擊輸入控制佔位符文本移動然後失去焦點時,它會向下移動,但通過Aurelia,您可以看到佔位符文本已經向上移動。如果你刪除了value.bind,即刪除value.bind="firstName"
,那麼佔位符應該在onfocus和lostfocus上都應該有動畫,所以有一些干擾的value.bind正在發生。
讓這個材質設計jquery插件工作起來很簡單,我甚至沒有嘗試與Aurelia互動,我只是希望它能夠像你將它添加到正常HTML頁面通過腳本標籤。我知道這是我只是不瞭解Aurelia。
任何幫助得到這個工作將是偉大的。
電流app.js試圖使用管線方法
import {inject} from 'aurelia-framework';
import {Router} from 'aurelia-router';
import 'bootstrap';
import 'bootstrap/css/bootstrap.css!';
import 'bootstrap-material';
@inject(Router)
export class App {
constructor(router) {
this.router = router;
this.router.configure(config => {
config.title = 'Aurelia';
// config.addPipelineStep('authorize', AuthorizeStep); // Add a route filter to the authorize extensibility point
config.addPipelineStep('modelbind', BSMaterial); // Transparently creates the pipeline "myname" if it doesn't already exist.
// config.addPipelineStep('modelbind', 'myname'); // Makes the entire `myname` pipeline run as part of the `modelbind` pipe
config.map([
{route: ['', 'welcome'], moduleId: './welcome', nav: true, title: 'Welcome'},
{route: 'test', moduleId: './test', nav: true, title: 'Test'},
{route: 'flickr', moduleId: './flickr', nav: true},
{route: 'child-router', moduleId: './child-router', nav: true, title: 'Child Router'}
]);
});
}
}
class AuthorizeStep {
run(routingContext, next) {
// debugger;
// debugger;
// Check if the route has an "auth" key
// The reason for using `nextInstructions` is because
// this includes child routes.
if (routingContext.nextInstructions.some(i => i.config.auth)) {
var isLoggedIn = /* insert magic here */false;
if (!isLoggedIn) {
return next.cancel(new Redirect('login'));
}
}
return next();
}
}
//attached() {
// $.material.init();
//}
class BSMaterial {
run(routingContext, next) {
$.material.init();
console.log('bsmaterial fired');
return next();
//
}
}
welcome.html
<template>
<section>
<h2>${heading}</h2>
<form role="form" >
<div class="form-group">
<label for="fn">First Name</label>
<input type="text" value.bind="firstName" class="form-control floating-label" id="fn" placeholder="first name">
</div>
<div class="form-group">
<label for="ln">Last Name</label>
<input type="text" value.bind="lastName" class="form-control floating-label" id="ln" placeholder="last name">
</div>
<div class="form-group">
<label>Full Name</label>
<p class="help-block">${fullName | upper}</p>
</div>
<a href="javascript:void(0)" class="btn btn-default">Default</a>
</form>
</section>
</template>
你在Gitter頻道中是否有同樣的問題?我以爲我們已經解決了你在那裏的問題,所以如果沒有,請讓我知道。 –
是的,感謝您的幫助,但是我仍然無法正確使用pipleline,因此它運行$ .material.init();爲每一頁。此外,第二個問題是,即使material.init確實運行value.bind似乎與材料js衝突,沒有錯誤,但沒有工作,我概述了我嘗試的以及上述文章中剩餘問題的細節。我非常感謝你的幫助。 – dan
我已經寫了一篇關於創建用於包裝css框架的自定義元素的博客:http://davismj.me/blog/semantic-custom-element/ –