问题描述
我正在创建一个使用Knockout JS的Laravel应用程序,并且无法使表单输入变量中的“ data-bind” 属性起作用。表单分为两部分,右侧是带有编辑链接的条目列表,左侧是进行编辑的字段。
编辑链接将正确填充编辑字段,并且对列表的更改成功并且数据库成功。
但是我的目的是在URL中是否包含子记录ID以及父ID。然后在加载时使用所选条目填充编辑字段。浏览器控制台中没有出现错误。
我是Laravel的新手,还是Knockout JS的新手。关于我的问题的原因有什么想法吗?
页面JS
<script type="text/javascript">
$(function() {
var stepsOb = JSON.parse(JSON.stringify({!! $show['steps'] !!}));
var steps = $.isPlainObject(stepsOb) ? [] : stepsOb;
@if (!empty($show['selectedStep']))
var editStepsOb = JSON.parse(JSON.stringify({!! $show['selectedStep'] !!}));
var editStep = $.isPlainObject(editStepsOb) ? [] : editStepsOb;
var planning = new Planning({
steps: steps,completed: {{ $show['goal']['completed'] ? 'true' : '0' }},id: {{ $show['goal']['goal_id'] }},newPlan: @if (isset($show['steps']) and count($show['steps']) == 0) true @else false @endif,currentStep: {{ $show['selectedStep']->id }},currentDescription: '{{ $show['selectedStep']->description }}',currentWhen: '{{ $show['selectedStep']->do_it_when }}',currentDate: '{{ $show['selectedStep']->date }}',isNew: false
});
@else
var planning = new Planning({
steps: steps,newPlan: @if (isset($show['steps']) and count($show['steps']) == 0) true @else false @endif
});
@endif
ko.applyBindings(planning);
});
</script>
页面加载视图模型数据显示“当前”元素的填充 page onload view model。 KO后绑定视图模型数据显示“当前”元素post ko binding view model的填充。
下面包含包含要填充元素的适用Laravel Blade代码。
<input type="hidden" value="" id="id" />
<div role="tabpanel" class="tabpanel-plan">
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#iwill" role="tab" data-toggle="tab"></a></li>
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="iwill">
<input type="text" data-bind="textInput: currentDescription" name="description" class="form-control" data-bv-notempty="true" />
</div>
</div>
</div>
<div role="tabpanel" class="tabpanel-plan" id="willdoit">
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" data-bind="css: { active: showDate() }"><a href="#doiton" role="tab" data-toggle="tab"></a></li>
<li role="presentation" data-bind="css: { active: showWhen() }"><a href="#everytime" role="tab" data-toggle="tab">I will do this every...</a></li>
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane" data-bind="css: { active: showDate() }" id="doiton">
<div class="has-Feedback">
<div class="date">
<input data-bind="pickadate: currentDate" type="text" name="date" id="date" data-bv-date="true" class="form-control" placeholder="Select a date" data-bv-field="when" />
</div>
<span class="glyphicon glyphicon-calendar form-control-Feedback" aria-hidden="true"></span>
</div>
</div>
<div role="tabpanel" class="tab-pane" data-bind="css: { active: showWhen() }" id="everytime">
<input type="text" name="when" data-bind="textInput: currentWhen" placeholder="Enter when you're going to do it" class="form-control" data-bv-field="when" />
</div>
</div>
</div>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)