这是一个示例聊天应用程序 - >
这里的想法是.messages-container尽可能多地占用屏幕.在其中.messages-container,.scroll保存消息列表,如果有更多消息,则屏幕大小滚动.
现在,考虑这种情况:
.text-input,动态地变大现在,不是用户保持滚动到对话的底部,文本输入增加,他们不再看到底部.
一种解决方法,如果我们使用react,计算文本输入的高度,如果有任何变化,让.messages-container知道
componentDidUpdate() {
window.setTimeout(_ => {
const newHeight = this.calcHeight();
if (newHeight !== this._oldHeight) {
this.props.onResize();
}
this._oldHeight = newHeight;
});
}
Run Code Online (Sandbox Code Playgroud)
但是,这会导致可见的性能问题,并且像这样传递消息很难过.
有没有更好的办法?我可以用这种方式使用css来表达当.text-input-increase增加时,我想要基本上shift up所有的.messages-container
我有一个表单,在POST时,呈现另一个表单.我想要做的是将参数从第一个表单传递到第二个表单的某些隐藏字段.
第二种形式是使用form_for表单助手,我正在尝试做的是让它接受发布给它的参数.
这是表单的样子:
<%= form_for(@phone) do |f| %>
<%= f.hidden_field :original_number, params[:original_number] %>
<%= f.hidden_field :name, params[:name] %>
<%= f.hidden_field :twilio_number, number.phone_number %>
<div class="found_list">
<div class="found_phone_number">
<%= f.label :number, number.friendly_name) %>
</div>
<div class="choose_found_number">
<%= f.submit "Choose This Number", :class => "btn btn-large btn-success" %>
</div>
</div>
<hr>
<% end %>
Run Code Online (Sandbox Code Playgroud)
当我做的事情
<%= f.hidden_field :original_number, params[:original_number] %>
Run Code Online (Sandbox Code Playgroud)
该操作给了我错误:
NoMethodError in Find_numbers#create
Showing C:/Sites/dentist/app/views/phones/new.html.erb where line #17 raised:
undefined method `merge' for "1231231234":String
Run Code Online (Sandbox Code Playgroud)
"1231231234"是正在POST到表单的参数,但它似乎不接受它.
你知道如何让表格接受参数吗?
当我删除params []时,错误不会发生,但参数也不会填充在隐藏字段中.
我的一位客户让我对div做出眨眼的效果.我认为这可能不是他的最好的事情,也许点燃淡入和淡出的不透明度将得到他的客户的关注,没有恼人的他们.
我现在有
<a class="special_button" href="#">Special Offers ›</a>
Run Code Online (Sandbox Code Playgroud)
我有另外一个div的代码,导致浏览器加载淡入:
$('.logo-top').delay(700).animate({
'opacity' : '1',
'top' : '+=40px'
}, { duration: 700, easing: 'swing' });
Run Code Online (Sandbox Code Playgroud)
我如何为special_button做类似的事情,而是循环不透明度?从80到100?
如果它循环一定次数甚至可能更好5甚至更好.
最好的,斯捷潘
键盘快捷键在Web应用程序中管理有点棘手.
考虑一个Widget组件.
我希望能够集中某些元素,并基于键盘shorcuts在此组件上运行函数.
class Widget extends React.Component {
componentDidMount() {
this.setBindings()
},
componentWillUnmount() {
this.removeBindings();
}
}
Run Code Online (Sandbox Code Playgroud)
setBindings和removeBindings将使用像mousetrap这样的库来绑定特定的键盘快捷键
现在,上述解决方案存在两个问题:
Widget.这破坏了代码的"粒度" - 理想情况下,用户应该能够使用Widget,然后使用WidgetWithShortcuts,或类似的东西另一个可能的解决方案是传递一个实例
const widgetShortcuts = (widgetInstance) => {
return {
'ctrl i': () => widgetInstance.focusInput(),
}
}
Run Code Online (Sandbox Code Playgroud)
第二种解决方案的问题是:
widgetInstance必须公开许多可公开访问的方法,如focusSomeThing或invokeProp等
如果Widget想要一些工具提示,在某些地方显示键盘快捷键,键盘shorcuts的信息将在不同的地方重复.可以在一个地方更改快捷方式,而在其他地方忘记这样做
是否有最佳实践或关于如何通过上述问题的解决方案实现键盘快捷键的一些想法?
我一直在浏览所有不提供静态图像帖子的Rails 4,但似乎无法缓解我遇到的问题.
看看https://fierce-meadow-1536.herokuapp.com
徽标似乎已经送达,因为这是我放置的第一批图片之一.几个星期后,我开始设计阶段并添加了更多图像,但没有一个出现.
例如灰色标题,其中显示"所有作业"实际上应该有一个背景图像
你觉得怎么样?
这是我对heroku的部署所说的 - >
Fetching repository, done.
Counting objects: 13, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 609 bytes, done.
Total 7 (delta 6), reused 0 (delta 0)
-----> Removing .DS_Store files
-----> Ruby app detected
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-2.0.0
-----> Installing dependencies using Bundler version 1.5.1
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
Using rake …Run Code Online (Sandbox Code Playgroud) 我正在将Firebase的内置oAuth功能用于SPA。
例如,此SPA属于自己的域名 foobar.com
问题是,当打开oauth弹出窗口时,将使用旧foobar.firebaseapp.com域而不是新foobar.com域
我的init看起来像这样
firebase.initializeApp({
apiKey: '...',
authDomain: 'foobar.firebaseapp.com',
databaseURL: 'https://foobar.firebaseio.com',
storageBucket: 'foobar.appspot.com',
messagingSenderId: '123456'
})
Run Code Online (Sandbox Code Playgroud)
我猜authDomain可能与它有关,但是如果我将其更改foobar.com为错误:
code: "auth/popup-closed-by-user", message: "The popup has been closed by the user before finalizing the operation."}
Run Code Online (Sandbox Code Playgroud)
简而言之,有没有一种方法可以自定义Firebase的oAuth网址?
我有以下高阶函数
fn ensure_tonicty(tone_fn: &fn(&f64, &f64) -> bool) -> impl Fn(&Vec<f64>) -> bool {
return |floats: &Vec<f64>| -> bool {
let first = floats.first().unwrap();
let rest = &floats[1..];
fn f(tone_fn: &fn(&f64, &f64) -> bool, prev: &f64, xs: &[f64]) -> bool {
match xs.first() {
Some(x) => tone_fn(prev, x) && f(tone_fn, x, &xs[1..]),
None => true,
}
};
return f(tone_fn, first, rest);
};
}
Run Code Online (Sandbox Code Playgroud)
我的目标是返回此lambda。我不知道如何有效地tone_fn在这里使用。
上面的代码出错了:
error[E0621]: explicit lifetime required in the type of `tone_fn`
--> src/lib.rs:1:56
|
1 | …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用cURL将其发布到Zapier Webhook。
Zapier已配置为如果我这样键入其URL- https: //zapier.com/hooks/catch/n/abcd?email=foo@bar.com&guid=foobar
它会收到该帖子,但是当我尝试使用cURL做同样的事情时,它似乎没有收到。
这是我使用cURL发布的代码->
<?php
// Initialize curl
$curl = curl_init();
// Configure curl options
$opts = array(
CURLOPT_URL => 'https://zapier.com/hooks/catch/n/abcd',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => 'guid='+ $_POST["guid"] + '&video_title=' + $_POST["video_title"] + '&email=' + $_POST["email"],
);
// Set curl options
curl_setopt_array($curl, $opts);
// Get the results
$result = curl_exec($curl);
// Close resource
curl_close($curl);
echo $result;
?>
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它显示成功,但是Zapier没有收到它。
在Zapier的文档中,有人举了一个带有适当cURL帖子的示例,例如->
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-X POST …Run Code Online (Sandbox Code Playgroud) 假设我正在创建一个“日期编辑器”视图。目标是: - 采用默认的种子日期。- 它允许用户更改输入。- 如果用户随后选择,他们可以按“保存”,在这种情况下,视图的所有者可以决定对数据执行某些操作。
这是实现它的一种方法:
struct AlarmEditor : View {
var seedDate : Date
var handleSave : (Date) -> Void
@State var editingDate : Date?
var body : some View {
let dateBinding : Binding<Date> = Binding(
get: {
return self.editingDate ?? seedDate
},
set: { date in
self.editingDate = date
}
)
return VStack {
DatePicker(
selection: dateBinding,
displayedComponents: .hourAndMinute,
label: { Text("Date") }
)
Spacer()
Button(action: {
self.handleSave(dateBinding.wrappedValue)
}) {
Text("Save").font(.headline).bold()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题
如果所有者改变 …
我有一个应用程序存储电话号码'+11231231234'.为了方便用户,我将其转换为:+1(123) 123-1234在视图中.我number_to_phone在rails中使用helper来做到这一点:
<%= number_to_phone(call.From, :area_code => true) %>
Run Code Online (Sandbox Code Playgroud)
我也想+1从视图中删除.如果前两个字符是,我需要写什么来删除电话号码的前两个字符+1?