Skip to content

Commit

Permalink
Merge branch 'meowtec-fix-bug-selected' into fix/#67#68
Browse files Browse the repository at this point in the history
# Conflicts:
#	src/select.handlebars
  • Loading branch information
tsj1107 committed Nov 30, 2015
2 parents 42505e6 + 8052ca8 commit 4b23ebb
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 27 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ sea-modules
_site
dist
spm_modules
coverage
8 changes: 4 additions & 4 deletions src/select.handlebars
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<div class="{{classPrefix}}">
<ul class="{{classPrefix}}-content" data-role="content">
{{#each select}}
{{#each options}}
<li data-role="item"
class="{{../classPrefix}}-item {{#if disabled}}{{../../classPrefix}}-item-disabled{{/if}}"
data-value="{{value}}"
data-defaultSelected="{{defaultSelected}}"
data-selected="{{selected}}"
data-disabled="{{disabled}}">{{{text}}}</li>
data-defaultSelected="{{toString defaultSelected}}"
data-selected="{{toString selected}}"
data-disabled="{{toString disabled}}">{{{text}}}</li>
{{/each}}
</ul>
</div>
16 changes: 8 additions & 8 deletions src/select.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ var Select = Overlay.extend({
},

templateHelpers: {
output: function(data) {
toString: function(data) {
return data + '';
}
},
Expand Down Expand Up @@ -162,10 +162,10 @@ var Select = Overlay.extend({
// 同步 html 到 model
var model = this.get('model');
if (oldSelectIndex >= 0) {
model.select[oldSelectIndex].selected = false;
model.options[oldSelectIndex].selected = false;
}
if (selectIndex >= 0) {
model.select[selectIndex].selected = true;
model.options[selectIndex].selected = true;
}
this.set('model', model);

Expand Down Expand Up @@ -206,7 +206,7 @@ var Select = Overlay.extend({
},

addOption: function(option) {
var model = this.get("model").select;
var model = this.get("model").options;
model.push(option);
this.syncModel(model);
return this;
Expand Down Expand Up @@ -235,15 +235,15 @@ var Select = Overlay.extend({

enableOption: function(option) {
var index = getOptionIndex(option, this.options);
var model = this.get("model").select;
var model = this.get("model").options;
model[index].disabled = false;
this.syncModel(model);
return this;
},

disableOption: function(option) {
var index = getOptionIndex(option, this.options);
var model = this.get("model").select;
var model = this.get("model").options;
model[index].disabled = true;
this.syncModel(model);
return this;
Expand Down Expand Up @@ -416,7 +416,7 @@ function convertSelect(select, classPrefix) {
if (!hasDefaultSelect && model.length) {
model[0].selected = 'true';
}
return {select: model, classPrefix: classPrefix};
return {options: model, classPrefix: classPrefix};
}

// 补全 model 对象
Expand All @@ -438,7 +438,7 @@ function completeModel(model, classPrefix) {
} else { //当所有都没有设置 selected 则默认设置第一个
newModel[0].selected = true;
}
return {select: newModel, classPrefix: classPrefix};
return {options: newModel, classPrefix: classPrefix};
}

function getOptionIndex(option, options) {
Expand Down
30 changes: 15 additions & 15 deletions tests/select-spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ describe('select', function() {
trigger: '#example'
}).render();

var model = select.get("model").select;
var model = select.get("model").options;
expect(model[0].defaultSelected).to.be(false);
expect(model[0].selected).to.be(true);
expect(model[0].value).to.be('value1');
Expand All @@ -71,7 +71,7 @@ describe('select', function() {
trigger: '#example'
}).render();

var model = select.get("model").select;
var model = select.get("model").options;
expect(model[0].defaultSelected).to.be(false);
expect(model[0].selected).to.be(false);
expect(model[0].value).to.be('value1');
Expand All @@ -88,7 +88,7 @@ describe('select', function() {
trigger: '#example'
}).render();

var model = select.get("model").select;
var model = select.get("model").options;
expect(model[0].disabled).to.be(false);
expect(model[1].disabled).to.be(true);
});
Expand All @@ -99,7 +99,7 @@ describe('select', function() {
trigger: '#example'
}).render();

var model = select.get("model").select;
var model = select.get("model").options;
expect(model[0].defaultSelected).to.be(true);
expect(model[0].selected).to.be(false);
expect(model[0].value).to.be('value1');
Expand All @@ -120,7 +120,7 @@ describe('select', function() {
]
}).render();

var model = select.get("model").select;
var model = select.get("model").options;
expect(model[0].defaultSelected).to.be(false);
expect(model[0].selected).to.be(true);
expect(model[0].value).to.be('value1');
Expand All @@ -141,7 +141,7 @@ describe('select', function() {
]
}).render();

var model = select.get("model").select;
var model = select.get("model").options;
expect(model[0].defaultSelected).to.be(false);
expect(model[0].selected).to.be(false);
expect(model[0].value).to.be('value1');
Expand All @@ -162,7 +162,7 @@ describe('select', function() {
]
}).render();

var model = select.get("model").select;
var model = select.get("model").options;
expect(model[0].defaultSelected).to.be(true);
expect(model[0].selected).to.be(false);
expect(model[0].value).to.be('value1');
Expand All @@ -179,7 +179,7 @@ describe('select', function() {
trigger: '#example'
}).render();

var model = select.get("model").select;
var model = select.get("model").options;
expect(model.length).to.be(0);
});

Expand Down Expand Up @@ -639,11 +639,11 @@ describe('select', function() {
]
}).render();
select.select(0);
expect(select.get('model').select[0].selected).to.be.ok();
expect(select.get('model').options[0].selected).to.be.ok();
select.select(1);
expect(select.get('model').select[1].selected).to.be.ok();
expect(select.get('model').options[1].selected).to.be.ok();
select.select(2);
expect(select.get('model').select[2].selected).to.be.ok();
expect(select.get('model').options[2].selected).to.be.ok();
});

it('html original select should be visiable', function() {
Expand All @@ -666,9 +666,9 @@ describe('select', function() {
{value: 'value4', text: 'text4', selected: true}
]
}).render();
expect(select.get('model').select[0].selected).not.to.be.ok();
expect(select.get('model').select[1].selected).not.to.be.ok();
expect(select.get('model').select[2].selected).not.to.be.ok();
expect(select.get('model').select[3].selected).to.be.ok();
expect(select.get('model').options[0].selected).not.to.be.ok();
expect(select.get('model').options[1].selected).not.to.be.ok();
expect(select.get('model').options[2].selected).not.to.be.ok();
expect(select.get('model').options[3].selected).to.be.ok();
})
});

0 comments on commit 4b23ebb

Please sign in to comment.