问题标签 [singlepage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在单页 javascript 应用程序中授权用户的操作
我们有一个使用 ACL 和角色来处理用户授权的 CakePHP 应用程序。现在整个管理面板都是使用 ExtJS3 构建的,所以它们都是单页面视图。每当加载视图时,我们都会使用 ACL 来查看用户是否有权访问应用程序的该部分。
我们希望将我们的应用程序迁移到 Rails 并使用带有新 MVC/单页结构的 ExtJS4。我们很好奇我们将如何授权用户操作?现在它们非常精细。用户的授权可以通过操作锁定,因此他们可能能够访问索引,读取或索引,读取,更新,但不能销毁等。
如果页面只加载一次,并且 ExtJS 负责加载应用程序的所有子视图,那么按角色授权用户的最佳方式是什么?
有任何想法吗?
编辑我忘了补充一点,我们需要能够从管理区域添加/删除角色或能力。像 cancan 这样的东西会很棒,但我还没有看到一种方法可以让它动态到用户可以添加/编辑能力的地方。
谢谢!
asp.net-mvc - 如何在 DbDataController 中使用业务验证?
ASP.NET MVC 4 的默认单页应用程序模板中有一个 crud 操作,如下所示。
upshot.js 与来自 DbDataController 操作的响应进行交互,如果操作失败,则 upshot.js 会出现验证错误,并且能够在客户端显示。
我需要做的是把我自己的业务规则放在操作中。但尚不清楚在 DbDataController 中将验证错误放在何处。
例如:InsertEntity(entity);
如果操作失败,则操作可以放置验证错误,并将验证错误自动发送到客户端。但是如果发生,我想把我的业务验证错误。那么我可以把它放在哪里呢?
asp.net-mvc-4 - MVC SPA w/o EF:在使用本地名称“__type”编写属性后,您必须编写一个属性“type”=“object”
所以我有一个非常规范化的模型,我试图在 MVC4 中创建一个想要使用实体框架对象的单页应用程序。我的问题是我无法使用我需要的那种复杂映射在 EF 中创建一个实体(我已经检查了多个指南,但我似乎无法从包含不同主键的多个表中创建一个实体.. .我找到了一个使用可更新视图的解决方案,但这实际上只是将抽象推到了数据库层)。
所以我想我可以使用 EF 查询创建一个 POCO 对象来创建对象,然后在插入/更新/删除时,我可以获取 POCO 数据并更新底层的 3 个表。
好吧,我只是试图调整现有的工作控制器以尝试了解正在发生的事情,因此遇到了障碍。
假设我有一个工作的 SPA 控制器,看起来像这样:
我只是稍微改变一下以返回我的新 POCO 数据对象 Bar,让我们想象它目前与 Foo 具有完全相同的字段:
在 FooViewModel.js 中,我将操作名称更新为 GetBars,并将类型从
var entityType = "Foo:#Models";
到
var entityType = "Bar:#Models";
我直接点击我的操作,我得到:
老的
<ArrayOfFoo><Foo><Property>true</Property></Foo></ArrayOfFoo>
新的
<ArrayOfBar><Bar><Property>true</Property></Bar></ArrayOfBar>
所以控制器看起来给了我我期望的东西,但是当我尝试把整个东西放在一起时,SPA 会闪现:
在使用本地名称“__type”编写属性之后,您必须编写一个属性“type”=“object”。
我猜我需要以某种方式将类型数据输入 KO?我不确定那可能在哪里,但是我已经在 JS 中爬行了好几个小时,但我什至不清楚它在哪里失败了。任何投入将不胜感激。
node.js - 使用 Node.js 和 ExtJS 构建企业级基于网格的单页应用程序?
虽然标题表明我想在问题中塞入尽可能多的流行语,但我实际上是认真的;)
我正在探索构建具有大量网格并且需要像桌面应用程序一样快速的企业应用程序的选项。虽然运营转型将是一个大问题(或者更确切地说是并发编辑,OT 是解决相关问题的一种可能方法),但该应用程序不太可能拥有大量并发用户(从 50 个开始,可能永远不会超过几百)。
虽然 SmartGWT 似乎解决了我们面临的许多问题,但构建应用程序的团队非常小(可能有两个开发人员和一个技术项目经理)。Node.js 似乎很有吸引力,因为两个开发人员都可以在后端和前端工作。
在这种情况下,我有几个问题:
Node.js 适合这种应用吗?听取人们的意见以及他们对 Node.js 和此类应用程序的体验会非常有趣。
有没有人将它与 ExtJS/SmartGWT 一起使用?你对这些如何与 Node 一起工作有什么经验?
我敢肯定,要找到有经验的 Node.js 开发人员是不可能的,而寻找 Java 专家则是一项相对微不足道的工作。有哪些其他语言可以轻松过渡到 Node.js 的经验?
我知道这是一个相当广泛的问题,请多多包涵。
php - 主干和 PHP 模型代码重复
所以我决定采用一个我一直在做的项目和项目管理系统,并将其从标准的多页应用程序转换为单页应用程序。在此过程中,我查看了许多 javascript MV*ish 框架(ember、knockout、backbone 等),并决定使用backbone.js,因为它似乎是最灵活的解决方案,而且我已经使用了下划线。 js 的实用程序和模板系统。
我这样做的最大担忧是我的 PHP 模型和骨干模型中的模型和业务/域逻辑可能存在代码重复。
这只是我在使用这样的架构时支付的技术成本,或者我可以做些什么来减少这种担忧?
php - 没有backbone.js的SPA
我目前正在构建一个可以与各种应用程序一起使用的应用程序框架。该框架是用 PHP 编写的,并具有 RESTful API。我希望框架能够结合使用 jQuery 和我的 API 来启用单页应用程序。
我已经研究了backbone.js,但我遇到的问题和其他一些类似的问题是,您实际上是在js 中复制您的业务逻辑。这不仅有效地使代码库的大小增加了一倍,而且还带来了某种安全风险。通过在 js 中复制你的业务逻辑,你向全世界展示了你的后端是什么样子,这使得恶意用户的工作变得更加容易。
也就是说,我当然不是前端/js 专家,而且我真的只是认真地研究了backbone.js。我的想法是必须有一个好的方法来定义动态的 js 函数来完成基本相同的事情。我正在寻找的是一个正确方向的点,即使它告诉我我有多么错误。
backbone.js - 主干维持状态
我正在使用 Backbone.js 开发一个 JavaScript 重型单页应用程序。目标如下;
用户从一组多选框开始,其中填充了过滤器元素以查询一组资源。这些多选框相互依赖。此外,多选中的元素是从服务器查询的,并且依赖于登录的用户,换句话说,它们依赖于与登录的用户关联的资源。
用户填写多选框并按下“过滤器”按钮。当按下它时,将获取一个集合,从而使用一组查询参数(多个数组值)来获取反映过滤器元素的集合。
获取集合时,将显示包含资源的视图。这个视图有多个子视图,并且必须可以在保持状态的同时向下钻取特定资源(作为查询参数的结果获取的集合)
在这样的用例中,如何在 Backbone 应用程序中维护状态?我浏览了许多示例,但所有示例都很简单有用。
jquery - SPA 是如何运作的?
我是单页应用程序概念的新手,我正在尝试了解服务器端和客户端导航模式以及 SPA 的请求处理生命周期。如果这些是非常基本的,请原谅。
如果 Web 应用程序尚未在客户端缓存并且用户点击 URL,那么服务器上发生的步骤顺序是什么?
如果在服务器端 SPA 只公开静态数据端点,那么客户端何时下载部分视图?整个 SPA(不同视图的所有部分视图)是否一次性下载?如果是这样,文件如何链接以供下载?
我们如何更改 SPA 不同部分的布局?
当代表 Web 应用程序大模块的“SPA”中有多个页面时,客户端导航如何工作?
javascript - 为单页应用程序从 .live() 升级到 .on()
众所周知,从 jQuery 1.7 开始:
基本上变成了:
所有实时事件不直接绑定到选择器中的元素,而是委托绑定到文档。
我认为这是因为'someSelector'
将来匹配的元素不存在于 DOM 中,因此不能绑定事件处理程序(通过直接或委托绑定)。
对于绝大多数元素(如果不是所有元素都是动态加载的)的单页应用程序,是否有关于如何最好地处理将所有内容绑定到文档的性能问题的指南?
例如,在通过加载新内容时注册/重新注册事件处理程序的最佳方式ajax()
以及如何更新以惰性.live()
思维方式编写的代码?
asp.net-mvc-3 - 将 MVVM 与 Knockout.js 一起使用时在服务器端定义模型
我计划在客户端为单页应用程序使用 knockout.js 和 MVVM 模式。所以模型,视图模型将在客户端定义。我对我们必须如何在服务器端进行结构感到困惑。
现在,控制器会返回域模型本身吗?从域模型到 ViewModel 的所有映射是否只发生在客户端?
在我的解决方案中,域模型和视图模型之间存在很大差距。所以上述方法会导致大量数据不必要地返回到客户端。虽然看起来有点矫枉过正,但我正在考虑在服务器端重复 ViewModel 和 InputViewModel 定义(前者代表呈现的数据,后者代表要回发到控制器操作的数据),并且还有一个映射层(基于 automapper)来映射域模型到服务器端的 ViewModels。这有意义吗?还是有更好的方法?