PhoneJs: динамически обновлять слайдер

Я хотел бы обновить определенное поле в слайдере из базы данных (websql), чтобы показать текущего пользователя, и он может получить доступ к своему профилю. Цель: title: log1, для этого я использовал save:function (), и у меня есть одна запись в базе данных. Я провел много дней в поисках, но до сих пор не нашел решения. Кто-нибудь может помочь, пожалуйста.

Индекс

//...
    <script type="text/javascript">
        $(function() {

            slideOut.app.navigate();
        });

        slideOut.Home = function (params) {        
            return {};
        };
    </script>


</head>
<body>


    <div data-options="dxView : { name: 'Home', title: 'Slide Out' } " >
    <div data-options="dxContent : { targetPlaceholder: 'content' } " >
    </div>
</div>



</body>
</html>

App.config:

window.slideOut = $.extend(true, window.slideOut, {

var log1;

save:function (){

    var db = openDatabase("dossierpatient", "1.0", "BD patient", 32678);
    db.transaction(function(transaction){
    transaction.executeSql("SELECT * FROM patient;", [], function(transaction,result){
                            for (var i=0; i< result.rows.length; i++) {
                                log1 = result.rows.item(i).login;
                                console.log(log1 + "\n ");

                            }

                        });

});
return log1;
}

  "config": {
    "navigationType": "slideout",

    "navigation": [
      {
        "title": log1,
        "action": "#",
        "icon": "todo"
      },
      {
        "title": "Item 2",
        "action": "#",
        "icon": "tips"
      },
      {
        "title": "Item 3",
        "action": "#",
        "icon": "card"
      },
      {
        "title": "Item 4",
        "action": "#",
        "icon": "map"
      }
    ]
  }
});

app.js

window.slideOut = window.slideOut || {};
$(function() {
    // Uncomment the line below to disable platform-specific look and feel and to use the Generic theme for all devices
    // DevExpress.devices.current({ platform: "generic" });

    slideOut.app = new DevExpress.framework.html.HtmlApplication({
        namespace: slideOut,
        commandMapping: slideOut.config.commandMapping,
        navigationType: "slideout",
        navigation: getNavigationItems()
    });

    slideOut.app.router.register(":view", { view: "Home"});


    function getNavigationItems() {
        return slideOut.config.navigation; // cherche le contenu du slideOut
    }

});

person Guest Guest    schedule 25.03.2014    source источник


Ответы (1)


Похоже, у вас ошибка в app.config.js. Объявление var log1 должно быть выше кода расширения. $.extend должен иметь параметры как действительные объекты js:

var log1;

$.extend(true, window.slideOut, {
    save: ...,
    ...
}

Подвиньтесь, я бы не советовал вам добавлять такой код в файл конфигурации приложения. Чтобы настроить заголовок представления (или то, что у вас есть в представлении), используйте viewModel с наблюдаемыми. Например:

slideOut.Home = function (params) {

    var title = ko.observable("title");

    var viewModel = {

        title: title,

        viewShowing: function() {
            // TODO: put code fetching title from db and set it on done to observable
            title("value");
        }
    };

    return viewModel;
};

Приведенный выше код установит заголовок представления.

person tabalin    schedule 27.03.2014