Fix for using css attribute selector alone.

This commit is contained in:
Nedyalko Nikolov
2016-04-07 17:04:23 +03:00
parent 19acc86e26
commit 3eb8514e96
2 changed files with 14 additions and 1 deletions

View File

@ -1513,6 +1513,19 @@ export function test_star_attr_selector_incorrect_syntax() {
} }
helper.buildUIAndRunTest(testButton, testFunc, testCss); helper.buildUIAndRunTest(testButton, testFunc, testCss);
} }
export function test_alone_attr_selector() {
let testButton = new buttonModule.Button();
testButton["testAttr"] = "flow";
let testCss = "[testAttr*='flower'] { background-color: #FF0000; } button { background-color: #00FF00; }";
let testFunc = function (views: Array<viewModule.View>) {
// style from correct type css should be applied
helper.assertViewBackgroundColor(testButton, "#00FF00");
}
helper.buildUIAndRunTest(testButton, testFunc, testCss);
}
// <snippet module="ui/styling" title="styling"> // <snippet module="ui/styling" title="styling">
// For information and example how to use style properties please refer to special [**Styling**](../../../styling.md) topic. // For information and example how to use style properties please refer to special [**Styling**](../../../styling.md) topic.
// </snippet> // </snippet>

View File

@ -24,7 +24,7 @@ export class CssSelector {
constructor(expression: string, declarations: cssParser.Declaration[]) { constructor(expression: string, declarations: cssParser.Declaration[]) {
if (expression) { if (expression) {
let leftSquareBracketIndex = expression.indexOf(LSBRACKET); let leftSquareBracketIndex = expression.indexOf(LSBRACKET);
if (leftSquareBracketIndex > 0) { if (leftSquareBracketIndex >= 0) {
// extracts what is inside square brackets ([target = 'test'] will extract "target = 'test'") // extracts what is inside square brackets ([target = 'test'] will extract "target = 'test'")
let paramsRegex = /\[\s*(.*)\s*\]/; let paramsRegex = /\[\s*(.*)\s*\]/;
let attrParams = paramsRegex.exec(expression); let attrParams = paramsRegex.exec(expression);