2015-02-16 2 views
0

IM, реализующего виджет примера нокаута http://knockoutjs.com/documentation/component-overview.htmlнокаута шаблон компонента виджета requirejs HTML

шаблона загрузки от внешнего HTML с requirejs не работает для меня

ko.components.register('like-or-dislike', { 
template: { require: 'text!files/component-like-widget.html' } 

});

Я помещаю html содержащий шаблон во внешний html. заменить «файлы /» на мой относительный путь »/ views/_leyout» и он не работает Мне нужен файл text.js, который загружает html? любой пример?

ответ

1

«text.js» - это плагин, который вы можете скачать с главной страницы require. Для меня лучший способ сделать конфигурации для нокаута-компонентов заключается в следующий:

config.js

define(['ko'], function (ko) { 

    ko.components.register('component-name', { require: 'components/viewmodels/component-name' }); 

}); 

компонентного name.js

define(['ko', 'text!components/templates/component-name.html'],function (ko, template) { 

    var vm = function (params) { 

    }; 

    return { 
     viewModel: vm, 
     template: template 
    }; 

}); 

Надеется, что это помогает :)

3

Ответ user3144678 верен. Вы должны включить text plugin в свой проект. Просто для уточнения, как использовать его, я сделал некоторые простой проект:

структура проекта:

project 
|-- index.html 
|-- app.js 
`-- content 
    `-- some-content.html 

index.html:

<html> 
    <head> 
    </head> 
    <body> 
     <script data-main="app.js"src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.22/require.js"></script> 
    </body> 
</html> 

app.js:

requirejs.config({ 
    paths: { 
     "text": "http://cdnjs.cloudflare.com/ajax/libs/require-text/2.0.12/text" 
    } 
}); 
requirejs(["text!content/some-text.html"], function (text) { 
    alert(text); 
});  

некоторые -content.html:

<div>just some text</div> 

результат будет предупрежден с «только некоторым текстом» внутри.

Смежные вопросы