문제

JSON 패킷이 주어지면 Microsoft Ajax를 사용하여 연락처 목록을 동적으로 채우고 있습니다. 내 코드는 다음과 같습니다.

function fillContactsFromData(contacts) {
    // this is just for debug to let me know that the data is correct
    if (contacts.length > 0) {
        alert('ID: ' + contacts[0].ID + ', Name: ' + contacts[0].Name);
    }

    $create(Sys.UI.DataView, { data: contacts }, null, null, $get('contacts'));
}

관련 HTML은 다음과 같습니다.

<div id="contacts" class="sys-template">
    <a onclick="removeContact('{{ ID }}');"><img src="remove.png" /></a>
    <a class="contact" rel="/Contacts/Index/{{ ID }}">{{ Name }}</a><br />
</div>

첫 번째 u003Ca>태그는 접점을 제거하기 위해 스크립트를 발사하는 데 사용되는 반면, 두 번째 태그는 jQuery Cluetip을 사용하여 호버에 상자를 가져옵니다 (여기에서 건너 뜁니다).u003C/a>

내가 가진 문제는 HTML이 올바르게 렌더링되지 않는다는 것입니다. 생성되는 것은 다음과 같습니다.

<div id="contacts">
    <a><img src="remove.png" /></a>
    <a class="contact" rel="/Contacts/Index/{{ ID }}">Darren Oster</a><br />
</div>

경고 상자는 유효한 ID (Guid) 및 이름 ( "Darren Oster")이있는 데이터를 나타냅니다. 이름이 올바르게 렌더링되고 있지만 ID 필드는 'Rel'속성으로 렌더링되지 않으며 'OnClick'문은 완전히 제거됩니다.

이것이 Ajax의 한계입니까, 아니면 내가 잘못하고 있습니까?

미리 감사드립니다.

도움이 되었습니까?

해결책

속성이 {{}} 표현식을 포함하는 경우 전체 값이어야합니다.

예 : foo = "{{ 'abc' + id}}"

아니오 : foo = "abc {{id}}"

OnClick이 생성되지 않는 경우에는 아마도 사용중인 검사가 값을 표시하지 않습니다. addAttribute ()가 아닌 직접 요소 세트.

다른 팁

Infinitiesloop은 저를 올바른 길로 올려 놓았으므로 여기에 최종 답변이 있습니다 (다른 사람 이이 길을 따르는 경우) ...

먼저 Ajax 4.0의 이전 미리보기를 사용하고있었습니다. 이제 Preview 5로 업데이트되었으며 상황이 약간 다르게 작동합니다. 마지막 HTML은 다음과 같습니다 (JavaScript는 변경되지 않았습니다).

<div id="contacts" class="sys-template">
    <a sys:onclick="{{ 'removeContact(\'' + ID + '\');' }}"><img src="remove.png" /></a>
    <a class="contact" sys:rel="{{ '/Contacts/Index/' + ID }}">{{ Name }}</a><br />
</div>

또한 미리보기 5에는 'SYS :'데이터가 바운드 값이있는 모든 속성에 대한 'SYS :'접두사가 필요합니다.

<option value="{{ Value }}">{{ Text }}</option>

내부 au003Cselect> becomes

<option sys:value="{{ Value }}">{{ Text }}</option>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top