KnockOut Data-Bind Visible导致错误的HTML

时间:2017-07-24 08:44:10

标签: javascript twitter-bootstrap knockout.js jquery-select2

我在KnockOut中使用bootstrap。 当我使用经典方式时,它看起来像下面。

@RestController
@RequestMapping(value = "/virtual/**", produces = {"application/json", "application/xml", "text/xml"}, consumes = MediaType.ALL_VALUE)
public class VirtualServiceGateway {

    private IVirtualDocumentService virtualService = UtilsForSpring.getSingleBeanOfType(IVirtualDocumentService.class);

    @RequestMapping(method = RequestMethod.GET)
    public Response requestGET(HttpServletRequest request, HttpServletResponse response) {


        IVirtualDocumentService docService = UtilsForSpring.getSingleBeanOfType(IVirtualDocumentService.class);
        docService.findDocumentByVirtualUrl(request.getRequestURL().toString());

        if (docService == null) {

            return Response.status(404).type(request.getContentType()).entity("There is no anything").build();
        }

        return Response.status(200).type(request.getContentType()).entity("ok!").build();

    }

enter image description here

但是当我使用可见的绑定时,它会像这样崩溃。

 <div class="col-md-6">
    <label for="element2" class="field-title">Kazandıran Şube</label>
    <select class="form-control select2" tabindex="15" data-bind="options: BranchList, optionsText: 'Label', optionsValue: 'StringValue', value: CustomerDataTransformObject.Customer.ConsolidationPlace, newChosen: {}"></select>
</div>

enter image description here

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

主要问题完全在于数据绑定:可见。因为当您对div使用可见绑定时,它无法计算它的实际大小。所以我不得不修复选择组件的大小。唯一的解决方案是将$(element).css("width", "100%");添加到 newChosen 绑定定义。