HiveBrain v1.2.0
Get Started
← Back to all entries
patternjavascriptMinor

Adjusting Angular.js model based on browser width

Submitted by: @import:stackexchange-codereview··
0
Viewed 0 times
adjustingangularbrowserwidthbasedmodel

Problem

I have an Array of 5 objects, some key values need to be changed based on the browser width. ie: 5 cols, 4 cols, 3 cols or 2.

vs.streams is an Array which is tied to a AngularJS model. When the selected value is true, that data will be called via an API And displays in their appropriate columns.

```
function checkBrowserWidth() {
var w = window.innerWidth;
console.log('w = ', w);

toggleStreams();

if (w > 1400) {
console.log('5 columns');
vs.streams = [
{ name: 'Twitter', value: 'twitter', selected: true, previous: true },
{ name: 'News', value: 'news', selected: true, previous: true },
{ name: 'Financial News', value: 'financial', selected: true, previous: true },
{ name: 'Blogs', value: 'blogs', selected: true, previous: true },
{ name: 'Forums', value: 'forums', selected: true, previous: true }
];
} else if (w > 1200 && w 1100 && w < 1200) {
console.log('3 columns');
vs.streams = [
{ name: 'Twitter', value: 'twitter', selected: true, previous: true },
{ name: 'News', value: 'news', selected: true, previous: true },
{ name: 'Financial News', value: 'financial', selected: true, previous: true },
{ name: 'Blogs', value: 'blogs', selected: false, previous: false },
{ name: 'Forums', value: 'forums', selected: false, previous: false }
];
} else if (w < 1100) {
console.log('2 columns');
vs.streams = [
{ name: 'Twitter', value: 'twitter', selected: true, previous: true },
{ name: 'News', value: 'news', selected: true, previous: true },
{ name: 'Financial News', value: 'financial', selected: false, previous: false },
{ name: 'Blogs', value: 'blogs', selected: false, previous:

Solution

You could shorten the toggleStreams function:

function toggleStreams(cols) {
    vs.streams[2].selected = vs.streams[2].previous = (cols >=3);
    vs.streams[3].selected = vs.streams[3].previous = (cols >=4);
    vs.streams[4].selected = vs.streams[4].previous = (cols >=5);      
}

Code Snippets

function toggleStreams(cols) {
    vs.streams[2].selected = vs.streams[2].previous = (cols >=3);
    vs.streams[3].selected = vs.streams[3].previous = (cols >=4);
    vs.streams[4].selected = vs.streams[4].previous = (cols >=5);      
}

Context

StackExchange Code Review Q#98382, answer score: 2

Revisions (0)

No revisions yet.