我有一个contenteditable div,其中包含典型的所见即所得编辑器html(粗体,锚点,列表).
我需要确定当前光标是否为onKeyDown,在div的开头和结尾.原因是,基于光标位置和按下的键,我可能想要将此div与退格上的前一个div合并,或者在输入时创建一个新的跟随div.
我一直在摆弄范围,但是当你在元素中使用html时,事情变得相当复杂.
我希望我必须忽略一些简单的解决方案.
是否有一种相对简单的方法来确定这一点 - 我愿意使用像Rangy这样的库.
谢谢!
编辑:我正在考虑以下几点:
$('.mycontenteditable').bind('keydown', handle_keydown)
handle_keydown = function(e) {
range = window.getSelection().getRangeAt(0)
start_range = document.createRange()
start_range.selectNodeContents(this.firstChild)
start_range.collapse(true) // collapse to start
is_start = start_range.compareBoundaryPoints(Range.START_TO_START,range)
end_range = document.createRange()
end_range.selectNodeContents(this.lastChild)
end_range.collapse(false)
is_end = end_range.compareBoundaryPoints(Range.END_TO_END,range)
}
Run Code Online (Sandbox Code Playgroud)
我会遇到类似这样的奇怪问题吗?
我对rails(3)相对较新,并且正在使用CanCan构建一个应用程序,其中有3层用户.
我的能力现在是bog-stock,从cancan docs复制,基本上定义了guest角色和admin角色
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # Guest user
if user.is_admin?
can :manage, :all
else
can :read, [Asana,Image,User,Video,Sequence]
end
end
end
Run Code Online (Sandbox Code Playgroud)
我想添加用户角色.由于我正在创建那个一次性用户模型,我想过使用new_record?确定用户是否已登录.就像是:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # Guest user
if !user.new_record? and user.is_admin?
can :manage, :all
elsif !user.new_record? and !user.is_admin?
can {registered user-y permissions}
else
can :read, [Asana,Image,User,Video,Sequence]
end
end
end
Run Code Online (Sandbox Code Playgroud)
但是,它感觉不对.似乎有点与实际登录相关,并且担心它是否真正安全.
寻求更优雅的方式来做这个建议.
谢谢!
我正在使用backbone.js与REST API进行交互,当它发布到它以创建新资源时,响应状态为201,"Location"标头指向资源的URI,但是空体.
当我创建一个新模型时,它成功了,但模型的本地表示只包含我明确设置的属性,而不包含将在服务器上设置的任何属性(created_date等)
根据我的理解,Backbone将使用正文中的数据更新其模型的表示,如果有的话.但是,既然没有,它就没有.
所以,显然,我需要使用Location标头中的位置来更新模型,但是最好的方法是什么.
我目前的心态是我必须从头部解析url,拆分id,设置模型的id,然后告诉模型fetch().
这看起来非常混乱.有更清洁的方法吗?
我对API有一些影响.是尝试让API作者将新模型作为响应主体返回的最佳解决方案(保留201和位置标题)?
谢谢!
我刚刚开始使用React,并且正在尝试使用React Components重新创建现有的HTML输出.
我不确定这是一个错误,还是我做错了什么,但最终的HTML输出并不是我所期待的.
问题是标签锚文本不应包含在范围内,只能包含以下数字.
从这个JSX开始:
/** @jsx React.DOM */;
var MyComponent = React.createClass({
render: function() {
return (
<div>
<div>
<ul>
<li><a>Tab1 <span>3</span></a></li>
<li><a>Tab2 <span>9</span></a></li>
<li><a>Tab3 <span>5</span></a></li>
<li><a>Tab4 <span>6</span></a></li>
</ul>
</div>
</div>
);
}
});
React.renderComponent(MyComponent({}), document.body);
Run Code Online (Sandbox Code Playgroud)
编译成以下JS:
/** @jsx React.DOM */;
var MyComponent = React.createClass({displayName: 'MyComponent',
render: function() {
return (
React.DOM.div(null,
React.DOM.div(null,
React.DOM.ul(null,
React.DOM.li(null, React.DOM.a(null, "Tab1 ", React.DOM.span(null, "3"))),
React.DOM.li(null, React.DOM.a(null, "Tab2 ", React.DOM.span(null, "9"))),
React.DOM.li(null, React.DOM.a(null, "Tab3 ", React.DOM.span(null, "5"))),
React.DOM.li(null, React.DOM.a(null, "Tab4 ", React.DOM.span(null, "6")))
) …Run Code Online (Sandbox Code Playgroud) 我正在研究我的第一个Rails(3)应用程序,并期待播种一堆数据.
我遇到的问题是我想要种一些与我刚播种的其他模型有一个has_and_belongs_to_many关系的模型.我做的似乎是正确的,但我没有得到我期待的结果.
我有一个Asana模型(简化):
class Asana < ActiveRecord::Base
has_and_belongs_to_many :therapeutic_foci
end
Run Code Online (Sandbox Code Playgroud)
和TherapeuticFocus模型:
class TherapeuticFocus < ActiveRecord::Base
has_and_belongs_to_many :asanas
end
Run Code Online (Sandbox Code Playgroud)
在我的db/seeds.rb中,我创建了一些TherapeuticFoci:
tf = TherapeuticFocus.create([
{:name => 'Anxiety'},
{:name => 'Asthma'},
{:name => 'Fatigue'},
{:name => 'Flat Feet'},
{:name => 'Headache'},
{:name => 'High Blood Pressure'},
{:name => 'Stress'} ])
Run Code Online (Sandbox Code Playgroud)
然后创建一个Asana:
asanaCreate = Asana.create!([
{ :english_name => 'Mountain Pose',
:traditional_name => 'Tadasana',
:pronunciation => 'TadaSANA',
:deck_set => 'Basic',
:type => 'Standing',
:therapeutic_foci => TherapeuticFocus.where("name in ('Stress','Flat Feet')")}
])
Run Code Online (Sandbox Code Playgroud)
结果是创建了TherapeuticFocus模型,创建了Asana,但它并没有创建与TherapeuticFocus模型的关系.结果数组为空.
如果我跑
TherapeuticFocus.where("name in ('Stress','Flat …Run Code Online (Sandbox Code Playgroud) 我正在使用Devise和CanCan开发Rails 3应用程序.
该应用程序允许匿名(未注册)用户访问某些应用程序,并允许注册用户访问其他部分.
应用程序(瑜伽锻炼应用程序)的一个方面是用户可以通过将瑜伽姿势串联起来创建瑜伽序列,然后他们可以在视频播放器中播放它们.
我目前已为注册用户提供所有功能,但现在希望允许匿名用户能够创建序列并播放它,但要"保存"它(即能够在任何后续会话中再次使用它) ,他们需要注册.
目前,这需要实际创建一个属于用户的Sequence模型实例(简化如下)
class Sequence < ActiveRecord::Base
validates_presence_of :name
validate :status_must_be_private_if_user_nil
# Associations
has_many :ordered_asana_sequences, :class_name => "OrderedAsanaSequence", :order => 'position ASC', :dependent => :destroy
has_many :asanas, :through => :ordered_asana_sequences
belongs_to :user
def status_must_be_private_if_user_nil
errors.add(:status, "must be private is user is nil") if
user == nil and status != :private
end
end
Run Code Online (Sandbox Code Playgroud)
但是,当然,匿名用户没有用户模型.
我有点像Hackces属于用户的东西,但它不是强制性的(user_id可以是nil,如上所示),并且通过CanCan保护编辑的能力:
class Ability
{snip}
# A guest can play with creating sequences
can :create, [Sequence]
# A guest can edit/update their own Sequences …Run Code Online (Sandbox Code Playgroud) cancan ×2
javascript ×2
backbone.js ×1
devise ×1
dom ×1
html ×1
rangy ×1
react-jsx ×1
reactjs ×1
rest ×1