首页 \ 问答 \ Angular:对象结构的最佳实践(Angular: object structure best practice)

Angular:对象结构的最佳实践(Angular: object structure best practice)

我在Angular工作,目前专注于过滤嵌套对象。 这是我的对象的结构:

$scope.subjectBin = {
     "Faculty of Engineering": {
           "ECE": [{<course-object>},{<course-object>}],
           "CHEM: [{<course-object>}]
      },
     "Faculty of Science": {
           "BIOL: [{<course-object>},...],
           ...
      },
      ...
}

当我使用过滤这个对象,构建新功能,并在分层手风琴中呈现它时,我想我应该改变这个对象的设计。

有人建议将对象更改为以下内容:

$scope.subjectBin = [{
    faculty: "Faculty of Engineering",
    subjects: [{
        subjectName: "ECE",
        courses: [{<course-object>},{<course-object>}]
        },
        ...
    ]
}, {
    faculty: "Faculty of Science",
    subjects: [{
        subjectBin: "CMPUT",
        courses: [{<course-object>},...]
        },
        ...
    ]
}]

我被告知这种布局更好,因为:“它不使用对象作为键盘图,它遵循一种模式”。

我同意它更好,但总体上希望对对象布局做一些澄清。

布置嵌套对象的 最佳做法是什么? 具有固定键名的基于数组的对象是否更可取?


I'm working in Angular, currently focusing on filtering a nested object. Here is the structure of my object:

$scope.subjectBin = {
     "Faculty of Engineering": {
           "ECE": [{<course-object>},{<course-object>}],
           "CHEM: [{<course-object>}]
      },
     "Faculty of Science": {
           "BIOL: [{<course-object>},...],
           ...
      },
      ...
}

As I work with filtering this object, build new features, and render this in a layered accordion, I'm thinking I should change the design of this object.

Someone suggested to change the object to the following:

$scope.subjectBin = [{
    faculty: "Faculty of Engineering",
    subjects: [{
        subjectName: "ECE",
        courses: [{<course-object>},{<course-object>}]
        },
        ...
    ]
}, {
    faculty: "Faculty of Science",
    subjects: [{
        subjectBin: "CMPUT",
        courses: [{<course-object>},...]
        },
        ...
    ]
}]

I was told this layout is better because: "it doesn't use objects as keymaps and it follows a pattern".

I agree that it's better but would like some clarification on object layout, in general.

What are best practices for laying out nested objects? Are array-based objects with fixed key-names preferable?


原文:https://stackoverflow.com/questions/26953495
更新时间:2022-10-25 17:10

最满意答案

这里有几件事需要考虑,可以帮助您摆脱错误并获得更清晰的代码:

  • 应使用AlarmManager计划警报
  • ServiceGps可以由WakefulBroadcastReceiver启动,因此您不必自己处理唤醒锁定。
  • 如果目标低于19,您可以从AlarmManager中使用setRepeating ...方法中受益。

**不要忘记你的Manifest中的权限。

希望能帮助到你。


There are several things to consider here that can help you get rid of your errors and get a cleaner code:

  • The alarm should be scheduled using the AlarmManager
  • The ServiceGps could be launched by a WakefulBroadcastReceiver, so you don't have to handle wake lock yourself.
  • If the target is below 19, you could benefit from using setRepeating... method in the AlarmManager.

** Don't forget the permissions in your Manifest.

Hope it helps.

相关问答

更多

相关文章

更多

最新问答

更多
  • h2元素推动其他h2和div。(h2 element pushing other h2 and div down. two divs, two headers, and they're wrapped within a parent div)
  • 创建一个功能(Create a function)
  • 我投了份简历,是电脑编程方面的学徒,面试时说要培训三个月,前面
  • PDO语句不显示获取的结果(PDOstatement not displaying fetched results)
  • Qt冻结循环的原因?(Qt freezing cause of the loop?)
  • TableView重复youtube-api结果(TableView Repeating youtube-api result)
  • 如何使用自由职业者帐户登录我的php网站?(How can I login into my php website using freelancer account? [closed])
  • SQL Server 2014版本支持的最大数据库数(Maximum number of databases supported by SQL Server 2014 editions)
  • 我如何获得DynamicJasper 3.1.2(或更高版本)的Maven仓库?(How do I get the maven repository for DynamicJasper 3.1.2 (or higher)?)
  • 以编程方式创建UITableView(Creating a UITableView Programmatically)
  • 如何打破按钮上的生命周期循环(How to break do-while loop on button)
  • C#使用EF访问MVC上的部分类的自定义属性(C# access custom attributes of a partial class on MVC with EF)
  • 如何获得facebook app的publish_stream权限?(How to get publish_stream permissions for facebook app?)
  • 如何防止调用冗余函数的postgres视图(how to prevent postgres views calling redundant functions)
  • Sql Server在欧洲获取当前日期时间(Sql Server get current date time in Europe)
  • 设置kotlin扩展名(Setting a kotlin extension)
  • 如何并排放置两个元件?(How to position two elements side by side?)
  • 如何在vim中启用python3?(How to enable python3 in vim?)
  • 在MySQL和/或多列中使用多个表用于Rails应用程序(Using multiple tables in MySQL and/or multiple columns for a Rails application)
  • 如何隐藏谷歌地图上的登录按钮?(How to hide the Sign in button from Google maps?)
  • Mysql左连接旋转90°表(Mysql Left join rotate 90° table)
  • dedecms如何安装?
  • 在哪儿学计算机最好?
  • 学php哪个的书 最好,本人菜鸟
  • 触摸时不要突出显示表格视图行(Do not highlight table view row when touched)
  • 如何覆盖错误堆栈getter(How to override Error stack getter)
  • 带有ImageMagick和许多图像的GIF动画(GIF animation with ImageMagick and many images)
  • USSD INTERFACE - > java web应用程序通信(USSD INTERFACE -> java web app communication)
  • 电脑高中毕业学习去哪里培训
  • 正则表达式验证SMTP响应(Regex to validate SMTP Responses)