【发布时间】:2015-03-05 20:59:23
【问题描述】:
在 Angular 中,我在一个视图中有一个项目列表,这些项目将根据它们是否被选中而显示在另一个视图中。
这是您检查要在另一个视图中显示的运动的视图
<ion-item ng-repeat="sport in sports"
ng-init="sport.checked = true"
ng-click="sport.checked = !sport.checked">
{{:: sport.name}}
</ion-item>
这是另一个视图
<div ng-show="sport.checked"
ng-repeat="sport in sports">
{{sport.name}}
</div>
您看到所有这些运动都有一个ng-init = sport.checked = true,所以所有运动都显示在开头,但您可以取消选中这些运动,以便在再次选中之前看不到它们。
这就是我到目前为止所拥有的一切,但是一旦你刷新页面,所有的检查和取消检查都会消失,刷新后一切都会重新启动,所以你知道我需要将数据保存在数据库或其他东西中,我正在使用node.js/sails.js 以及 Redis 用于此。我知道如何在 node.js 部分中创建几乎所有内容,但我需要在 Angular 部分的控制器和服务方面提供一些帮助,所以我需要你的帮助。
我希望用户只能检查一次他们的运动,而不是每次登录应用程序时。
那么当一项运动未被选中时,我可以向控制器添加哪些功能来向服务提供建议,以及服务将如何接收该数据?
另外,如果您对 NodeJS 部分有任何建议,那也太棒了。
【问题讨论】:
-
听起来你想使用 sessionStorage/localStorage,或者如果你真的很大胆地潜入 indexeddb 的激动人心的世界。然而,这些东西并没有那么有棱角,因为它们是直接的 javascript。您可能需要将它们连接到服务。
-
是的,兄弟,但是请阅读这个问题,我的意思是,我知道我必须做什么,我首先需要做的是将该信息发送到 Angular 控制器,然后发送到 Angular 服务,这是我首先需要知道的,然后我可以开始处理 NODEJS 部分@S.Buda
-
您不需要将数据发送到角度控制器,看起来它应该已经在控制器中 - 无论您的运动对象放在哪里。从那里您可以创建一个服务并将其注入您的控制器。然后您可以根据需要处理数据。话虽如此,我看不出您在这方面需要 NodeJS 做什么,因为这让我觉得这是您想要作为客户端会话一部分的信息,而不是某些服务器状态。再说一次,我很少使用节点,所以可能是我不了解这方面的事情。
-
我的应用中有用户想要注销,然后再次登录并查看他们的运动是否已选中和未选中,这不是您每次登录时都想做的事情,我希望用户只能检查一次他们的运动,而不是每次登录应用程序时。 @S.Buda,你说的我该怎么做?我是角新手
-
我明白了。因此,您可以将该信息作为用户配置文件的一部分保存在某些服务器数据库中。我设想这将是您将使用 localstorage 或 indexeddb 存储在浏览器中的数据。我的声明仍然有效。将服务注入您的控制器,然后在您的服务中使用逻辑来执行您需要的操作(将其发布到您的服务器或将其保存在本地) - 例如
angular.module("whatever").controller("controller", function(myDataService){
标签: javascript angularjs node.js sails.js