我有下表:
myTable:
+----+----------+
| id | parentID |
+----+----------+
| 1 | null |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 4 |
-----------------
Run Code Online (Sandbox Code Playgroud)
我想让所有行都追溯到没有parentID了.所以".... WHERE id = 5"会给我:
5, 4, 2, 1
Run Code Online (Sandbox Code Playgroud) 我已经开始使用(几个小时前)Durandal希望在一个页面内管理视图和允许组合 - 之前的方法,也使用Knockout,在一个胖的HTML文件中维护过于笨重.
我已经安装/设置了Durandal,我可以创建视图和视图模型 - 但是,我不知道如何将数据导入 viewmodel以用作新视图模型的基础.
举例来说,我有选择的项目是"左侧导航栏" -当一个项目被选中它更新了"选择项"在当前的模型观察到的,但它应该也加载正确的"详细信息视图",在右边:由于部分尝试Durandal分离组件/视图的原因,这应该来自一个单独的视图/视图模型.
我已经阅读了包含Composition和Using Composition的文档,但是关于如何将数据传递给viewmodel的方法对我来说并不清楚.看起来我可以使用现有模型的视图(在当前视图/范围中),但我真的只想使用一些当前模型数据(即id)来获取"真实"模型数据风景.
因此,我的问题;
如何将初始数据(例如"选定项目")传递给视图模型?我更喜欢使用声明性的"compose:"绑定,因为这就是KO的原因.KO.
这种概念是在这里使用/传递初始数据的正确方法,还是有更好的选择?我看到"activeItem"含糊地提到了,但细节/用法让我很开心.
更新1:我发现我们如何在视图之间共享数据/传递数据视图以进行查看,但实际实现中缺少响应.我真的不想在父子(不同的视图/视图模型对)之间共享viewmodel,我想使用声明式方法(没有事件).父母不需要了解孩子,但孩子需要从父母那里获得数据.
更新2:虽然上面我暗示只需要"id",但我想要一种适用于任何基础对象的方法,路由器不一定适合.在这种情况下,深度链接不是问题.但是,如果你觉得路由器的方式来处理这个,张贴如答案参数(带细节),我会至少给它一个赞成票..
parent-child mvvm viewmodel single-page-application durandal
我有以下标记:
<div class="foo">
<ul>
<li>one</li>
<li>two</li>
</ul>
<ul>
<li>three</li>
</ul>
<ul>
<li>four</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
我希望风格"一"和"三".
但是,标记也可以是:
<div class="foo">
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
<ul>
<li>four</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
我尝试过使用以下CSS:
.foo li:nth-child(1),
.foo li:nth-child(3)
{
color:red;
}
Run Code Online (Sandbox Code Playgroud)
然而,正如预期的那样,这是造型的第一个孩子ul.(演示:http://jsfiddle.net/hTfVu/)
如何更改我的CSS以便我可以定位第1和第3 li属于.foo?
我有一个选项列表,其中包含复选框和父项内的完成按钮ListView.按下完成按钮后,我想知道选中了哪个复选框.
我应该补充一点,我试图在ListView使用回调函数中维护一个复选框的数组ChildCheckBox.它工作正常,除了导航回来时ListView,阵列将被重置,而复选框似乎仍然被检查.我希望onDonePress()函数只是查询哪些框被检查然后在那时做出相应的响应而不是依赖于ListView维护一个数组.
这是ListView:
class ParentListView extends Component {
constructor(props) {
super(props);
this.state = {
dataSource: new ListView.DataSource({
rowHasChanged: (row1, row2) => row1 !== row2,
}),
};
}
componentDidMount() {
this.setState({
dataSource: this.state.dataSource.cloneWithRows(ROW_DATA),
});
}
onCheckPress() {
console.log('Check Pressed')
// callback from ChildCheckBoxCell...?
}
onDonePress() {
console.log('Done pressed')
// callback from ChildDoneCell...?
}
render() {
return (
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow.bind(this)}
style={styles.listView}
/>
);
}
renderRow(cell) {
if …Run Code Online (Sandbox Code Playgroud) 我正在构建一个具有可继承泛型和父子关系的架构.我有一个主要问题:我不能让孩子和父母都知道对方的类型,只有两个中的一个.
我需要孩子和父母都知道彼此的类型.
场景1:父级知道子类型,但子级只知道具有通用子级的通用父级.
public class Child
{
public Parent<Child> Parent;
}
public class Parent<TChild>
where TChild : Child
{
public List<TChild> Children;
}
Run Code Online (Sandbox Code Playgroud)
场景2:Child知道父类型,但父级只知道具有通用父级的通用子级.
public class Child<TParent>
where TParent : Parent
{
public TParent Parent;
}
public class Parent
{
public List<Child<Parent>> Children;
}
Run Code Online (Sandbox Code Playgroud)
场景3:乌托邦但无法实现的场景:
public class Child<TParent>
where TParent : Parent
{
public TParent Parent;
}
public class Parent<TChild>
where TChild : Child
{
public List<TChild> Children;
}
Run Code Online (Sandbox Code Playgroud)
当然,方案3将不会编译,因为父母和孩子参加第二泛型类型,这将是自己的类型,但我不能(或至少不知道如何!)指定这是他们自己的类型.
我在这里陷入某种无限循环/递归/抛球,请在我淹死之前帮助我.
祝好运.
编辑 …
我如何停止onclick内部元素也点击进入其父元素.
<div id="1" onclick="alert('1')">
<div id="2" onclick="alert('2')"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
如果第二个div(id ="2")明显位于第一个div之上,并且单击它,则会同时获得警报1和2.
我怎样才能避免这种情况,所以我只能从我(明显)点击的内容中获得警报,而不会完全禁用外部div可能拥有的任何onclick功能.
我正在尝试这个:
var child = spawn('node', args, {cwd: parentDir, stdio: 'ipc'} );
Run Code Online (Sandbox Code Playgroud)
(args是一个参数数组)
但它给出以下错误:
TypeError:stdio选项的值不正确:ipc
这实际上有效,所以问题似乎确实是stdio ipc参数:
var child = spawn('node', args, {cwd: parentDir} );
Run Code Online (Sandbox Code Playgroud)
这也有效:
var child = spawn('node', args, {cwd: parentDir, stdio: 'pipe'} );
Run Code Online (Sandbox Code Playgroud)
我读到了这个:http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options 但是我看不出哪里出错了.这是我第一次尝试使用这个NodeJS功能,所以如果问题很明显,我很抱歉.
也许还有其他方法可以解决问题.孩子必须产生而不是分叉,我只是希望能够将孩子的信息发送给父母.
谢谢!!
编辑:我有Node v0.8.18.我搜索了IPC http://nodejs.org/changelog.html的版本历史记录,搜索词"IPC"没有任何内容让我觉得我需要更新版本的NodeJS.
我正在和Akka一起工作,我们仍然要相互了解.
我的方案是:我为主管(父)演员选择了一个非默认调度员,他的角色是管理(监督)并创建子演员来完成工作.
问题:儿童演员是否继承了父母的演员?
我知道您可以为配置中指定的父actor的子actor 明确指定一个不同的调度程序.
akka.actor.deployment {
/my-parent-actor {
dispatcher = dispatcher-for-parent
}
"/my-parent-actor/*" {
dispatcher = dispatcher-for-children
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果您指定父actor调度程序,而没有明确指定子actor的调度程序,是否继承父项actor的子项.
为了获得效果,我扩展了子视图,导致子视图在其父视图的一侧出现.我在子视图中有一个按钮,它在缩放之前有效但在缩放后不起作用.出了什么问题?见下图:
为了缩放孩子我使用这个代码:
childView.bringToFront();
Animation a = new Animation() {
@Override
protected void applyTransformation(float t, Transformation trans) {
float scale = 1f * ( 1 - t ) + SCALE_UP_FACTOR * t;
childView.setScaleX(scale);
childView.setScaleY(scale);
}
@Override
public boolean willChangeBounds() {
return true;
}
};
a.setDuration(ANIM_DURATION);
a.setInterpolator(new Interpolator() {
@Override
public float getInterpolation(float t) {
t -= 1f;
return (t * t * t * t * t) + 1f; // (t-1)^5 + 1
}
});
childView.startAnimation(a);
Run Code Online (Sandbox Code Playgroud)
父母是ViewPager:
<ViewPager
xmlns:android="http://schemas.android.com/apk/res/android" …Run Code Online (Sandbox Code Playgroud) 对于我正在开发的网站,我制作了一个带有复选框的组件,可以触发父组件中的状态更改。我已通过子组件在控制台中检查状态已更改,但我希望父组件也“注意到”更改。我尝试过 useEffect 和 componentDidUpdate 但它们都不会被状态更改触发。
为了澄清,结构如下所示:
父级:具有初始状态子级:通过父级访问状态并更改状态
在页面刷新时,父级会注意到状态更改,但我希望无需刷新页面即可实现这一点。
我希望这是有道理的,提前谢谢你:)
parent-child ×10
javascript ×3
components ×2
state ×2
akka ×1
android ×1
android-view ×1
c# ×1
css ×1
dispatcher ×1
durandal ×1
generics ×1
inheritance ×1
ipc ×1
jquery ×1
listview ×1
mvvm ×1
mysql ×1
node.js ×1
onclick ×1
react-native ×1
reactjs ×1
scala ×1
self-join ×1
viewmodel ×1